版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术(清华大学课件,全套)第一页,共681页。2课程目标掌握:微型计算机的基本工作原理汇编语言程序设计方法微型计算机接口技术建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力第二页,共681页。3教材及实验指导书教材:《微机原理与接口技术》(第3版).冯博琴,吴宁主编.清华大学出版社实验指导书《微机原理与接口技术实验指导书》(讲义)陈文革,吴宁,夏秦编.西安交通大学《微机原理与接口技术题解及实验指导》(第3版).吴宁,陈文革编.清华大学出版社第三页,共681页。4第1章微型计算机基础概论主要内容:微机系统的组成计算机中的编码、数制及其转换无符号二进制数的运算算术运算和逻辑运算运算中的溢出机器数的表示及运算基本逻辑门及译码器第四页,共681页。5一、微型计算机系统微型机的工作原理微机系统的基本组成第五页,共681页。61.
计算机的工作原理冯•
诺依曼计算机的工作原理存储程序工作原理第六页,共681页。7存储程序原理将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存指令按其在存储器中存放的顺序执行;由控制器控制整个程序和数据的存取以及程序的执行。第七页,共681页。8冯•诺依曼计算机体系结构运算器存储器控制器输入设备输出设备第八页,共681页。9冯•诺依曼机的工作过程内存中的程序指令1指令2指令n┇分析获取操作数执行存放结果┇程序计数器PC地址CPU取出操作数第九页,共681页。10冯•诺依曼机的工作过程取一条指令的工作过程:将指令所在地址赋给程序计数器PC;PC内容送到地址寄存器AR,PC自动加1;把AR的内容通过地址总线送至内存储器,经地址译码器译码,选中相应单元。CPU的控制器发出读命令。在读命令控制下,把所选中单元的内容(即指令操作码)读到数据总线DB。把读出的内容经数据总线送到数据寄存器DR。指令译码因为取出的是指令的操作码,故数据寄存器DR把它送到指令寄存器IR,然后再送到指令译码器ID第十页,共681页。冯•诺依曼机的特点和不足特点:程序存储,共享数据,顺序执行属于顺序处理机,适合于确定的算法和数值数据的处理。不足:与存储器间有大量数据交互,对总线要求很高;执行顺序有程序决定,对大型复杂任务较困难;以运算器为核心,处理效率较低;由PC控制执行顺序,难以进行真正的并行处理。11第十一页,共681页。典型的非冯•诺依曼机结构数据流驱动的计算机结构当指令具有所需数据、且输出端没有数据时就可执行。12DataflowImageProcessingSystem第十二页,共681页。132.系统组成主机硬件系统外设微机系统系统软件软件系统应用软件CPU存储器输入/输出接口总线第十三页,共681页。14微处理器微处理器简称CPU,是计算机的核心。主要包括:
运算器控制器寄存器组第十四页,共681页。15存储器定义:用于存放计算机工作过程中需要操作的数据和程序。第十五页,共681页。16有关内存储器的几个概念内存单元的地址和内容内存容量内存的操作内存的分类第十六页,共681页。17
内存单元的地址和内容内存按单元组织每单元都对应一个地址,以方便对单元的寻址1011011038F04H内存地址单元内容第十七页,共681页。18内存容量内存容量:所含存储单元的个数,以字节为单位内存容量的大小依CPU的寻址能力而定实地址模式下为CPU地址信号线的位数第十八页,共681页。19内存操作读:将内存单元的内容取入CPU,原单元内容不改变;写:CPU将信息放入内存单元,单元中原来的内容被覆盖。第十九页,共681页。20内存储器的分类随机存取存储器(RAM)只读存储器(ROM)按工作方式可分为第二十页,共681页。21输入/输出接口接口是CPU与外部设备间的桥梁CPUI/O接口外设第二十一页,共681页。22接口的分类串行接口并行接口数字接口模拟接口输入接口输出接口第二十二页,共681页。23接口的功能数据缓冲寄存;信号电平或类型的转换;实现主机与外设间的运行匹配。第二十三页,共681页。24总线基本概念分类工作原理常用系统总线标准及其主要技术指标(具体内容见后续课程)第二十四页,共681页。25软件系统软件:为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料。系统软件应用软件操作系统编译系统网络系统工具软件软件第二十五页,共681页。26二、计算机中的数制和编码数制和编码的表示各种计数制之间的相互转换第二十六页,共681页。271.常用计数法
十进制(D)二进制(B)十六进制(H)第二十七页,共681页。28例:234.98D或(234.98)D1101.11B或(1101.11)BABCD.BFH或(ABCD.BF)H第二十八页,共681页。292.各种进制数间的转换非十进制数到十进制数的转换十进制到非十进制数的转换二进制与十六进制数之间的转换
第二十九页,共681页。30非十进制数到十进制数的转换按相应的权值表达式展开例:1011.11B=1×23+0×22+1×21+1×20+1×2-1+1×2-2
=8+2+1+0.5+0.25=11.755B.8H=5×161+11×160+8×16-1
=80+11+0.5=91.5第三十页,共681页。31十进制到非十进制数的转换到二进制的转换:对整数:除2取余;对小数:乘2取整。到十六进制的转换:对整数:除16取余;对小数:乘16取整。第三十一页,共681页。32二进制与十六进制间的转换用4位二进制数表示1位十六进制数例:25.5=
11001.1B=
19.8H11001010.0110101B=CA.6AH第三十二页,共681页。333.
计算机中的编码BCD码用二进制编码表示的十进制数ASCII码西文字符编码第三十三页,共681页。34BCD码压缩BCD码用4位二进制码表示一位十进制数每4位之间有一个空格扩展BCD码用8位二进制码表示一位十进制数,每4位之间有一个空格。第三十四页,共681页。35BCD码与二进制数之间的转换先转换为十进制数,再转换二进制数;反之同样。例:(00010001.00100101)BCD=11.25=(1011.01)B第三十五页,共681页。36ASCII码西文字符的编码,一般用7位二进制码表示。D7位为校验位,默认情况下为0。要求:理解校验位的作用熟悉0F的ASCII码第三十六页,共681页。37ASCII码的奇偶校验奇校验加上校验位后编码中“1”的个数为奇数。例:A的ASCII码是41H(1000001B)以奇校验传送则为C1H(11000001B)偶校验加上校验位后编码中“1”的个数为偶数。上例若以偶校验传送,则为41H。第三十七页,共681页。38三、无符号二进制数的运算算术运算逻辑运算无符号数有符号数二进制数的运算第三十八页,共681页。39主要内容无符号二进制数的算术运算无符号数的表达范围运算中的溢出问题无符号数的逻辑运算基本逻辑门和译码器第三十九页,共681页。401.无符号数的算术运算加法运算1+1=0(有进位)减法运算0-1=1(有借位)乘法运算除法运算第四十页,共681页。41乘除运算例00001011×0100=00101100B
00001011÷0100=00000010B
即:商=00000010B
余数=11B第四十一页,共681页。422.无符号数的表示范围:
0≤
X≤2n-1若运算结果超出这个范围,则产生溢出。对无符号数:运算时,当最高位向更高位
有进位(或借位)时则产生
溢出。第四十二页,共681页。43[例]:
最高位向前有进位,产生溢出第四十三页,共681页。443.逻辑运算与、或、非、异或掌握:与、或、非门逻辑符号和逻辑关系(真值表);与非门、或非门的应用。第四十四页,共681页。45“与”、“或”运算“与”运算:任何数和“0”相“与”,结果为0。“或”运算:任何数和“1”相“或”,结果为1。&&≥1≥1第四十五页,共681页。46“非”、“异或”运算“非”运算按位求反“异或”运算相同则为0,相异则为1第四十六页,共681页。474.
译码器掌握74LS138译码器各引脚功能输入端与输出端关系(真值表)第四十七页,共681页。4874LS138译码器G1G2AG2BCBAY0Y7••••主要引脚及功能第四十八页,共681页。49三、机器数(有符号数)的运算第四十九页,共681页。50计算机中符号数的表示机器数计算机中的数据构成:符号位+真值“0”表示正“1”表示负第五十页,共681页。51[例]
+52=+0110100=0
0110100
符号位真值-52=-0110100=1
0110100符号位真值第五十一页,共681页。521.
符号数的表示机器数的表示方法:原码反码补码第五十二页,共681页。53原码最高位为符号位(用“0”表示正,用“1”表示负),其余为真值部分。优点:真值和其原码表示之间的对应关系简单,容易理解;缺点:计算机中用原码进行加减运算比较困难0的表示不唯一。第五十三页,共681页。54数0的原码8位数0的原码:+0=00000000
-0=10000000即:数0的原码不唯一。第五十四页,共681页。55反码对一个机器数X:若X>0,则[X]反=[X]原若X<0,则[X]反=对应原码的符号位不变,数值部分按位求反第五十五页,共681页。56[例]X=-52=-0110100[X]原=10110100[X]反=11001011第五十六页,共681页。570的反码:[+0]反=00000000[-0]反=11111111即:数0的反码也不是唯一的。第五十七页,共681页。58补码定义:若X>0,则[X]补=[X]反=[X]原若X<0,则[X]补=[X]反+1第五十八页,共681页。59[例]X=–52=–0110100[X]原=10110100[X]反=11001011[X]补=[X]反+1=11001100第五十九页,共681页。600的补码:[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000
对8位字长,进位被舍掉第六十页,共681页。61特殊数10000000对无符号数:(10000000)B=128在原码中定义为:-0在反码中定义为:-127在补码中定义为:-128第六十一页,共681页。62符号数的表示范围对8位二进制数:原码:-127~+127反码:-127~+127补码:-128~+127第六十二页,共681页。632.符号二进制数与十进制的转换对用补码表示的二进制数:1)求出真值2)进行转换第六十三页,共681页。64[例]:补码数转换为十进制数[X]补=00101110B
正数所以:真值=0101110B
X=+46[X]补=11010010B
负数所以:真值不等于-1010010B而是:X=[[X]补]补=[11010010]补=-0101110=-46第六十四页,共681页。653.符号数的算术运算通过引进补码,可将减法运算转换为加法运算。即:[X+Y]补=[X]补+[Y]补[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补注:运算时符号位须对齐第六十五页,共681页。66[例]X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100[X]补=[X]反+1=11001100[Y]补=[Y]原=01110100[X+Y]补=[X]补+[Y]补
=11001100+01110100=01000000X+Y=+1000000第六十六页,共681页。67符号数运算中的溢出问题两个带符号二进制数相加或相减时,若运算结果超出可表达范围,则产生溢出溢出的判断方法:最高位进位状态次高位进位状态=1,则结果溢出第六十七页,共681页。68[例]:若:X=01111000,Y=01101001则:X+Y=次高位向最高位有进位,而最高位向前无进位,产生溢出。(事实上,两正数相加得出负数,结果出错)第六十八页,共681页。69结束语:第1章难点:
补码的概念及其运算谢谢大家!第六十九页,共681页。70第2章微处理器与总线第七十页,共681页。71主要内容:微处理器的功能和结构8088/8086微处理器特点主要引线功能和内部结构内部寄存器实地址模式下的存储器寻址总线时序总线第七十一页,共681页。一、微处理器及8088/8086CPU72第七十二页,共681页。1.微处理器运算器控制器内部寄存器73微处理器第七十三页,共681页。742.程序和指令程序:具有一定功能的指令的有序集合指令:由人向计算机发出的、能够为计算机所识别的命令。第七十四页,共681页。753.
指令执行的一般过程取指令取指部件,分析部件,执行部件指令译码读取操作数执行指令存放结果第七十五页,共681页。764.顺序执行和并行流水线顺序执行方式:各功能部件交替工作,按顺序完成指令的执行过程。并行流水线方式:各功能部件并行工作。第七十六页,共681页。77顺序工作方式取指令1执行指令1分析指令1CPUBUS忙碌忙碌取指令2执行指令2分析指令2第七十七页,共681页。78并行流水线工作方式
EU取指令1执行指令1分析指令1CPU取指令2执行指令2分析指令2取指令3执行指令3分析指令3BIU忙碌忙碌忙碌忙碌忙碌第七十八页,共681页。795.
8088/8086CPU的特点采用并行流水线工作方式
——通过设置指令预取队列实现对内存空间实行分段管理
——
将内存分为4个段并设置地址段寄存器,以实现对1MB空间的寻址支持多处理器系统CPU内部结构存储器寻址部分工作模式第七十九页,共681页。806.8088CPU的两种工作模式8088可工作于两种模式下
最小模式最大模式最小模式为单处理器模式。最大模式为多处理器模式。第八十页,共681页。81两种工作模式的选择方式8088是工作在最小还是最大模式由MN/MX引线的状态决定。MN/MX=0——工作于最大模式MN/MX=1——工作于最小模式第八十一页,共681页。82二、8088/8086的引线及功能第八十二页,共681页。831.主要引线——最小模式下的8088引线地址线和数据线:AD0—AD7:低8位地址和低8位数据信号分时复用。在传送地址信号时为单向,传送数据信号时为双向。A16--A19:高4位地址信号,与状态信号分时复用。A8—A15:8位地址信号第八十三页,共681页。84主要的控制和状态信号WR:写信号;RD:读信号;IO/M:为“0”表示访问内存,为“1”表示访问接口;DEN:低电平有效时,允许进行读/写操作;DT/R:数据收发器的传送方向控制;ALE:地址锁存信号;RESET:复位信号。第八十四页,共681页。85例:当WR=1,RD=0,IO/M=0时,表示CPU当前正在进行读存储器操作第八十五页,共681页。86READY信号第八十六页,共681页。87中断请求和响应信号INTR:可屏蔽中断请求输入端NMI:非屏蔽中断请求输入端INTA:中断响应输出端第八十七页,共681页。88总线保持信号HOLD:总线保持请求信号输入端。当CPU
以外的其他设备要求占用总线时,通过该引脚向CPU发出请求。HLDA:总线保持响应信号输出端。CPU对
HOLD信号的响应信号。第八十八页,共681页。892.8088和8086CPU引线功能比较数据总线宽度不同8088的外部总线宽度是8位,8086为16位。访问存储器和输入输出控制信号含义不同8088——IO/M=0表示访问内存;8086——IO/M=1表示访问内存。其他部分引线功能的区别第八十九页,共681页。90三、8088/8086的内部结构第九十页,共681页。911.组成8088/8086内部由两部分组成:
执行单元(EU)总线接口单元(BIU)第九十一页,共681页。922.执行单元运算器8个通用寄存器1个标志寄存器
EU部分控制电路教材第43页图2-6图第九十二页,共681页。93执行单元功能指令译码指令执行暂存中间运算结果保存运算结果特征指令的执行在标志寄存器FLAGS中在ALU中完成在通用寄存器中第九十三页,共681页。943.总线接口单元功能:从内存中取指令到指令预取队列指令预取队列是并行流水线工作的基础负责与内存或输入/输出接口之间的数据传送在执行转移程序时,BIU使指令预取队列复位,从指定的新地址取指令,并立即传给执行单元执行。第九十四页,共681页。95结论指令预取队列的存在使EU和BIU两个部分可同时进行工作,从而:提高了CPU的效率;降低了对存储器存取速度的要求第九十五页,共681页。96四、内部寄存器第九十六页,共681页。97内部寄存器的类型含14个16位寄存器,按功能可分为三类8个通用寄存器4个段寄存器2个控制寄存器深入理解:每个寄存器中数据的含义第九十七页,共681页。981.通用寄存器数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI)第九十八页,共681页。99数据寄存器8088/8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即:AXBXCXDXAH,ALCH,CLBH,BLDH,DL第九十九页,共681页。100数据寄存器特有的习惯用法AX:累加器。所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中;BX:基址寄存器。在间接寻址中用于存放基地址;CX:计数寄存器。用于在循环或串操作指令中存放计数值;DX:数据寄存器。在间接寻址的I/O指令中存放
I/O端口地址;在32位乘除法运算时,存放高16位数。第一百页,共681页。101地址指针寄存器SP:堆栈指针寄存器,其内容为栈顶的偏移地址;BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。第一百零一页,共681页。102BX与BP在应用上的区别作为通用寄存器,二者均可用于存放数据;作为基址寄存器,用BX表示所寻找的数据在数据段;用BP则表示数据在堆栈段。第一百零二页,共681页。103变址寄存器SI:源变址寄存器DI:目标变址寄存器变址寄存器在指令中常用于存放数据在内存中的地址。第一百零三页,共681页。1042.控制寄存器IP指令指针寄存器,其内容为下一条要执行指令的偏移地址。FLAGS标志寄存器,存放运算结果的特征6个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位(IF,TF,DF)内存中的程序指令1指令2指令n┇分析获取操作数执行存放结果┇程序计数器PC地址CPU取出操作数第一百零四页,共681页。105状态标志位(1)CF(CarryFlag)进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1PF(ParityFlag)奇偶标志位。运算结果的低8位中“1”的个数为偶数时PF=lAF(AuxiliaryCarryFlag)辅助进位标志位。加(减)操作中,若Bit3向Bit4有进位(借位),AF=1第一百零五页,共681页。106状态标志位(2)ZF(ZeroFlag)零标志位。当运算结果为零时ZF=1SF(SignFlag)符号标志位。当运算结果的最高位为1时,SF=lOF(OverflowFlag)溢出标志位。当算术运算的结果超出了有符号数的可表达范围时,OF=l
第一百零六页,共681页。107状态标志位例给出以下运算结果及运算后各状态标志位的状态:10110110+1111010010110110
+11110100101010101CF=OF=AF=PF=SF=ZF=111010第一百零七页,共681页。108控制标志位TF(TrapFlag)陷井标志位,也叫跟踪标志位。TF=1时,使CPU处于单步执行指令的工作方式。IF(InterruptEnableFlag)中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。DF(DirectionFlag)方向标志位。在数据串操作时确定操作的方向。第一百零八页,共681页。1093.段寄存器作用用于存放相应逻辑段的段基地址8086/8088内存中逻辑段的数量最多为64K个8086/8088内存中逻辑段的类型代码段数据段附加段堆栈段存放指令代码存放操作的数据存放操作的数据存放暂时不用但需保存的数据。为什么叫逻辑段?每个段寄存器中存放的内容=?第一百零九页,共681页。110段寄存器CS代码段寄存器,存放代码段的段基地址。DS数据段寄存器,存放数据段的段基地址。ES附加段寄存器,存放数据段的段基地址。SS堆栈段寄存器,存放堆栈段的段基地址段寄存器的值表明相应逻辑段在内存中的位置第一百一十页,共681页。111五、存储器寻址第一百一十一页,共681页。1121.
内存单元的编址(1)每个内存单元在整个内存空间中都具有惟一的地址每个内存单元的地址码都由两部分组成:段(基)地址16位段内地址16位相对地址/偏移地址物理地址8088为16位结构,所以段地址和偏移地址均为16位第一百一十二页,共681页。113存储器的编址(2)段基地址:决定存储单元在内存中的位置相对地址(偏移地址)决定该存储单元相对段内第一个单元的距离逻辑段的起始地址称为段首每个逻辑段内的第一个单元段首的偏移地址=0第一百一十三页,共681页。114存储器的编址(3)0000段基地址(16位)段首地址(段首的物理地址)××ו••×××1904段首的偏移地址:0000H段基地址(16位)××ו••×××31015××ו••×××第一百一十四页,共681页。115存储器的编址(4)例:段基地址=6000H段首地址偏移地址=0009H物理地址数据段60009H00H12H60000H9物理地址:内存单元在整个内存空间中的惟一地址第一百一十五页,共681页。1162.实地址模式下的存储器地址变换内存物理地址由段基地址和偏移地址组成物理地址=段基地址×16+偏移地址0000段首地址××ו••×××1904××ו••×××偏移地址+物理地址第一百一十六页,共681页。117例:已知CS=1055H,DS=250AHES=2EF0HSS=8FF0H画出各段在内存中的分布。第一百一十七页,共681页。118例:CS=1055H段首地址=10550HDS=250AH段首地址=250A0HES=2EF0HSS=8FF0H10550H250A0H2EF00H8FF00H代码段数据段附加段堆栈段第一百一十八页,共681页。119例设某操作数存放在数据段,DS=250AH,数据所在单元的偏移地址=0204H。则该操作数所在单元的物理地址为:250AH×16+0204H=252A4H第一百一十九页,共681页。1203.存储器的保护模式保护模式:支持多任务的工作模式,提供了多任务保护机制;内存段的访问受到限制,不能再随意存取数据段。保护模式下的内存访问不再直接从段寄存器中获得段基地址,段基地址存放在内存的段描述符表中,由段描述符寄存器给出段描述符表的基地址,段寄存器中仅存放段选择符。第一百二十页,共681页。121保护模式下的存储器地址变换第一百二十一页,共681页。1224.堆栈及堆栈段的使用堆栈:内存中一个特殊区域,用于存放暂时不用或需要保护的数据。常用于响应中断或子程序调用。第一百二十二页,共681页。123例:已知SS=1000H,SP=0100H则:堆栈段的段首地址=栈顶(偏移)地址=若该段最后一个单元地址为10200H,则:栈底偏移地址=段首栈底栈顶堆栈区10000H0100H0200H第一百二十三页,共681页。1245.内部寄存器小结全部为16位寄存器只有4个数据寄存器分别可分为2个8位寄存器所有16位寄存器中:全部通用寄存器中,只有AX和CX中的内容一定为参加运算的数据,其余通用寄存器中的内容可能是数据,也可能是存放数据的地址;SP中的内容通常为堆栈段的栈顶地址;段寄存器中的内容为相应逻辑段的段地址;IP中的内容为下一条要取的指令的偏移地址;FLAGS中有9位标志位第一百二十四页,共681页。1256.实模式下的存储器寻址小结每个内存单元在整个内存空间中都具有惟一地址每个内存单元的地址都由两部分组成:段基地址段内相对地址(偏移地址)段基地址决定了逻辑段在内存中所占的区域,改变段基地址,则改变了逻辑段的位置。一个逻辑段的默认长度为64KB,最小长度值为16B。逻辑段可以有多个,但只有4种类型。在一个程序模块中,每种类型的逻辑段最多只能有一个。第一百二十五页,共681页。126六、总线时序第一百二十六页,共681页。127时序时序:CPU各引脚信号在时间上的关系总线周期:CPU完成一次访问内存(或接口)操作所需要的时间。一个总线周期至少包括4个时钟周期。第一百二十七页,共681页。128七、8088系统总线第一百二十八页,共681页。129主要内容:总线的基本概念和分类;总线的工作方式;常用系统总线标准。第一百二十九页,共681页。1301.概述总线:
是一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道。地址总线(AB)数据总线(DB)控制总线(CB)第一百三十页,共681页。1312.总线分类CPU总线系统总线外部总线片内总线片外总线按相对CPU的位置分按层次结构分第一百三十一页,共681页。1323.总线的系统结构单总线结构CPUMMI/OI/OI/O第一百三十二页,共681页。133多总线结构面向CPU的双总线结构面向主存的双总线结构双总线结构多总线结构第一百三十三页,共681页。134面向CPU的双总线结构存储器与I/O接口间无直接通道CPUMI/OI/OI/O第一百三十四页,共681页。135面向存储器的双总线结构在单总线结构基础上增加一条CPU到存储器的高速总线CPUMI/OI/OI/O第一百三十五页,共681页。136现代微机中的多总线结构第一百三十六页,共681页。1374.总线的基本功能数据传送仲裁控制出错处理总线驱动第一百三十七页,共681页。1385.常用系统总线ISA(8/16位)PCI(32/64位)AGP(加速图形端口,用于提高图形处理能力)PCI-E(PCIExpress)目前最新的系统总线标准,采用串行方式传输数据,依靠高频率来获得高性能。第一百三十八页,共681页。1396.总线的主要性能指标总线带宽(B/S):单位时间内总线上可传送的数据量总线位宽(bit):能同时传送的数据位数总线的工作频率(MHz)总线带宽=(位宽/8)(工作频率/每个存取周期的时钟数)第一百三十九页,共681页。1407.两种工作模式下的总线连接8088可工作于两种模式下最小模式为单处理器模式,控制信号较少,一般可不必接总线控制器。最大模式为多处理器模式,控制信号较多,须通过总线控制器与总线相连。第一百四十页,共681页。141最小模式下的总线连接示意图8088CPU••控制总线数据总线地址总线地址锁存数据收发ALE时钟发生器第一百四十一页,共681页。142最大模式下的总线连接示意图8088CPU数据总线地址总线地址锁存数据收发ALE时钟发生器总线控制器控制总线第一百四十二页,共681页。143本章小结微处理器的一般构成8088CPU的主要引线及其功能8088CPU的内部结构内部寄存器功能寄存器中数据的含义8位寄存器中存放的均为运算的数据存储器寻址逻辑地址,段基地址,偏移地址,物理地址堆栈栈顶地址,栈底地址,堆栈段基地址第一百四十三页,共681页。144谢谢大家!第一百四十四页,共681页。145第3章
指令系统第一百四十五页,共681页。146主要内容:指令系统的一般概念对操作数的寻址方式六大类指令的操作原理:操作码的含义指令对操作数的要求指令执行的结果第一百四十六页,共681页。147§3.1
概述第一百四十七页,共681页。148了解:指令及指令系统;指令的格式;指令中的操作数类型;指令字长与机器字长;指令的执行时间CISC和RISC指令系统第一百四十八页,共681页。149一、指令与指令系统指令:控制计算机完成某种操作的命令指令系统:处理器所能识别的所有指令的集合指令的兼容性:同一系列机的指令都是兼容的。第一百四十九页,共681页。150二、指令格式指令中应包含的信息:运算数据的来源运算结果的去向执行的操作第一百五十页,共681页。151指令格式操作码[操作数],[操作数]执行何种操作目标操作数源操作数参加操作的数据或数据存放的地址第一百五十一页,共681页。152指令格式:
零操作数指令:操作码单操作数指令:操作码操作数双操作数指令:操作码操作数,操作数多操作数指令:三操作数及以上第一百五十二页,共681页。153三、指令中的操作数立即数寄存器存储器表征参加操作的数据本身表征数据存放的地址第一百五十三页,共681页。154立即数操作数立即数本身是参加操作的数据,可以是8位或16位,只能作为源操作数。例:MOVAX,1234HMOVBL,22H立即数无法作为目标操作数立即数可以是无符号或带符号数,其数值应在可取值范围内。第一百五十四页,共681页。155寄存器操作数:参加运算的数存放在指令给出的寄存器中,可以是16位或8位。例:MOVAX,BXMOVDL,CH第一百五十五页,共681页。156存储器操作数参加运算的数存放在存储器的某一个或某两个单元中。表现形式:[]立即数或寄存器[]中的内容是存放所寻找数据的单元的偏移地址第一百五十六页,共681页。157存储器操作数例例:MOVAX,[1200H]MOVAL,[1200H]22H11H1200H偏移地址AHAL┇
第一百五十七页,共681页。158四、指令字长指令字长:由操作码的长度、操作数地址长度、操作数个数决定。第一百五十八页,共681页。159五、指令的执行速度指令的字长影响指令的执行速度对不同的操作数,指令执行的时间不同:
存储器快!立即数寄存器第一百五十九页,共681页。160六、CISC和RISC指令系统CISC(complexinstructionsetcomputer)指令的功能强,种类多,常用指令用硬件实现;指令系统复杂,难使用。RISC指令系统指令功能较弱,种类少,格式简单;多数指令在一个计算机周期内完成;对存储器的结构和存取速度要求较高。第一百六十页,共681页。161§3.2
寻址方式第一百六十一页,共681页。162寻址方式
寻找操作数所在地址的方法寻找转移地址的方法
本节第一百六十二页,共681页。163寻址方式操作数可能的来源或存放处:由指令直接给出寄存器内存单元寻找操作数所在地址的方法可以有三种大类型指令直接给出的方式存放于寄存器中的寻址方式存放于存储器中的寻址方式第一百六十三页,共681页。164一、立即寻址指令中的源操作数是立即数,即源操作数是参加操作的数据本身例:MOVAX,1200H12H00HAHALMOV代码段┇
立即寻址仅适合于源操作数第一百六十四页,共681页。165二、寄存器寻址参加操作的操作数在CPU的通用寄存器中。例:MOVAX,BXAXBX第一百六十五页,共681页。166三、直接寻址指令中直接给出操作数的偏移地址默认在数据段例:MOVAX,[1200H]22H11H1200H偏移地址┇
数据段AHAL第一百六十六页,共681页。167直接寻址直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。例:MOVAX,ES:[1200H]第一百六十七页,共681页。168四、寄存器间接寻址参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。第一百六十八页,共681页。169寄存器间接寻址例例:MOVAX,[BX]
设BX=1200H22H11H1200H偏移地址AHAL┇
1122数据段代码段MOV第一百六十九页,共681页。170寄存器间接寻址由寄存器间接给出操作数的偏移地址;存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:
BX,SI,DIBP默认在数据段默认在堆栈段第一百七十页,共681页。171寄存器间接寻址寄存器间接寻址基址寻址(间址寄存器为基址寄存器BX,BP)变址寻址(间址寄存器为变址寄存器SI,DI)第一百七十一页,共681页。172五、寄存器相对寻址操作数的偏移地址为寄存器的内容加上一个位移量例:MOVAX,[BX+DATA]设:DS=2000H,BX=0220H,DATA=05H则:AX=[20225H]第一百七十二页,共681页。173六、基址、变址寻址操作数的偏移地址为一个基址寄存器的内容+一个变址寄存器的内容;操作数的段地址由选择的基址寄存器决定基址寄存器为BX,默认在数据段基址寄存器为BP,默认在堆栈段基址变址寻址方式与相对寻址方式一样,主要用于一维数组操作。第一百七十三页,共681页。174例:执行下列指令:MOVSI,1100HMOVBX,SIMOVAX,[SI+BX]22H11H2200H偏移地址AHAL┇
1122数据段第一百七十四页,共681页。175七、基址、变址、相对寻址操作数的偏移地址为:基址寄存器内容+变址寄存器内容+位移量操作数的段地址由选择的基址寄存器决定。基址变址相对寻址方式主要用于二维表格操作。第一百七十五页,共681页。176例:执行以下程序段:MOVDI,1100HMOVBP,DIMOVAL,[BP][DI]522H11H2205H偏移地址AL┇
22堆栈段第一百七十六页,共681页。177八、隐含寻址指令中隐含了一个或两个操作数的地址,即操作数在默认的地址中。例:MULBL指令执行:AL×BLAX第一百七十七页,共681页。178§3.38086指令系统第一百七十八页,共681页。179掌握:指令码的含义指令对操作数的要求指令的对标志位的影响指令的功能第一百七十九页,共681页。1808086指令系统从功能上包括六大类:数据传送算术运算逻辑运算和移位串操作程序控制处理器控制第一百八十页,共681页。181数据传送指令通用数据传送输入输出地址传送标志位操作第一百八十一页,共681页。182一、通用数据传送一般数据传送指令堆栈操作指令交换指令查表转换指令字位扩展指令特点:该类指令的执行对标志位不产生影响
第一百八十二页,共681页。1831.一般数据传送指令一般数据传送指令MOV格式:MOVdest,src操作:src例:
MOVAL,BL
dest第一百八十三页,共681页。184一般数据传送指令注意点:两操作数字长必须相同;两操作数不允许同时为存储器操作数;两操作数不允许同时为段寄存器;在源操作数是立即数时,目标操作数不能是段寄存器;IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现。第一百八十四页,共681页。185一般数据传送指令例判断下列指令的正确性:MOVAL,BXMOVAX,[SI]05HMOV[BX][BP],BXMOVDS,1000HMOVDX,09HMOV[1200],[SI]第一百八十五页,共681页。186一般数据传送指令应用例将(*)的ASCII码2AH送入内存数据段1000H开始的100个单元中。题目分析:确定首地址确定数据长度写一次数据修改单元地址修改长度值判断写完否?未完继续写入,否则结束1063H100B1000H┇
┇
2AH数据段2AH2AH2AH第一百八十六页,共681页。187一般数据传送指令应用例程序段:
MOVDI,1000HMOVCX,64HMOVAL,2AHAGAIN:MOV[DI],ALINCDI;DI+1
DECCX;CX-1JNZAGAIN;CX≠0则继续HLT第一百八十七页,共681页。188上段程序在代码段中的存放形式設CS=109EH,IP=0100H,则各条指令在代码段中的存放地址如下:
CS:IP机器指令汇编指令109E:0100B80010MOVDI,1000H109E:0103.MOVCX,64H109E:0105.MOVAL,2AH109E:0107.MOV[DI],AL109E:0109INCDI109E:010ADECCX109E:010BJNZ0107H109E:010DHLT第一百八十八页,共681页。189数据段中的分布
送上2AH后数据段中相应存储单元的内容改变如下:DS:10002A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10102A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10202A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10302A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10402A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10502A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10602A2A2A2A000000000000000000000000偏移地址[DI]第一百八十九页,共681页。1902.堆栈操作指令掌握:有关堆栈的概念栈顶、栈首、栈底堆栈指令的操作原理执行过程,执行结果第一百九十页,共681页。191堆栈操作的原则先进后出以字为单位第一百九十一页,共681页。192堆栈操作指令压栈指令PUSH
格式:PUSHOPRD出栈指令POP
格式:POPOPRD16位寄存器或存储器两单元16位寄存器或存储器两单元第一百九十二页,共681页。193压栈指令PUSH指令执行过程:SP-2→SP操作数高字节→SP+1操作数低字节→SP┇
SP堆栈段SP高8位低8位第一百九十三页,共681页。194压栈指令的操作设AX=1234H,SP=1200H执行PUSHAX指令后堆栈区的状态:1200H┇
堆栈段SP-2=11FEH12H34H1200H┇
堆栈段12H34HAX入栈后入栈前第一百九十四页,共681页。195出栈指令POP指令执行过程:
SP
SP+1SP←SP+2操作数低字节操作数高字节┇
SP堆栈段SP高8位低8位第一百九十五页,共681页。196出栈指令的操作执行POPAX12H34H11FEH┇
堆栈段代码段PUSH1234AX
SP+21200H┇
出栈后出栈前第一百九十六页,共681页。197堆栈操作指令说明指令的操作数必须是16位的;操作数可以是寄存器或存储器两单元,但不能是立即数;不能从栈顶弹出一个字给CS;PUSH和POP指令在程序中一般成对出现;PUSH指令的操作方向是从高地址向低地址,而POP指令的操作正好相反。第一百九十七页,共681页。198堆栈操作指令例MOVAX,1234HMOVSP,AXMOVBX,5678HMOV[BX],AHMOV[BX+1],BLPUSHAXPUSHBXPUSHWORDPTR[BX]POPWORDPTR[BX]POPAXPOPBX┇
如此,会使AX和BX的内容互换第一百九十八页,共681页。1993.交换指令格式:XCHGREG,MEM/REG注:两操作数必须有一个是寄存器操作数不允许使用段寄存器。例:XCHG AX,BXXCHG [2000],CL第一百九十九页,共681页。2004.查表指令格式:
XLAT说明:用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址操作:将BX+AL所指单元的内容送AL第二百页,共681页。201查表指令例数据段中存放有一张ASCII码转换表,设首地址为2000H,现欲查出表中第11个代码的ASCII码303132...394142...45462000H+02000H+11‘0’‘1’‘2’‘9’‘A’‘B’‘E’‘F’第二百零一页,共681页。202查表指令例可用如下指令实现:MOVBX,2000H;BX←表首地址MOVAL,0BH;AL←序号XLAT
;查表转换执行后:AL=42H还可用其他方法实现,如:MOVBX,2000HMOVAL,[BX+0BH]第二百零二页,共681页。2035.字位扩展指令将符号数的符号位扩展到高位;指令为零操作数指令,采用隐含寻址,隐含的操作数为AX及AX,DX无符号数的扩展规则为在高位补0第二百零三页,共681页。204字节到字的扩展指令格式:CBW操作:将AL内容扩展到AX规则:若最高位=1,则执行后AH=FFH若最高位=0,则执行后AH=00H第二百零四页,共681页。205字到双字的扩展指令格式:CWD操作:将AX内容扩展到DXAX规则:若最高位=1,则执行后DX=FFFFH若最高位=0,则执行后DX=0000H第二百零五页,共681页。206字位扩展指令例判断以下指令执行结果:MOVAL,44HCBWMOVAX,0AFDEHCWDMOVAL,86HCBW第二百零六页,共681页。207二、输入输出指令掌握:指令的格式及操作指令的两种寻址方式指令对操作数的要求第二百零七页,共681页。208输入输出指令专门面向I/O端口操作的指令指令格式:输入指令:INacc,PORT输出指令:OUTPORT,acc端口地址第二百零八页,共681页。209指令寻址方式根据端口地址码的长度,指令具有两种不同的端口地址表现形式。直接寻址端口地址为8位时,指令中直接给出8位端口地址;寻址256个端口。间接寻址端口地址为16位时,指令中的端口地址必须由DX指定;可寻址64K个端口。第二百零九页,共681页。210I/O指令例INAX,80HMOVDX,2400HINAL,DXOUT35H,AXOUTAX,35H第二百一十页,共681页。211三、地址传送指令取偏移地址指令LEA*LDS指令*LES指令第二百一十一页,共681页。212取偏移地址指令LEA操作:将变量的16位偏移地址取出送目标寄存器当程序中用符号地址表示内存偏移地址时,须使用该指令。格式:
LEAREG,MEM
指令要求:源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器。符号地址第二百一十二页,共681页。213LEA指令比较下列指令:MOVSI,DATA1LEASI,DATA1
MOVBX,[BX]LEABX,[BX]┇
┇
┇
DATA1符号地址12H34H1100H88H77HBX=1100H执行结果:SI=1234H执行结果:SI=DATA1执行结果:BX=7788H执行结果:BX=1100H第二百一十三页,共681页。214LEA指令在程序中的应用将数据段中首地址为MEM1的50个字节的数据传送到同一逻辑段首地址为MEM2的区域存放。编写相应的程序段
。
第二百一十四页,共681页。215LEA指令在程序中的应用开始取源地址取目标地址送数据块长度到CL传送一个字节修改地址指针修改计数值计数值=0?结束NY第二百一十五页,共681页。216LEA指令在程序中的应用LEASI,MEM1LEADI,MEM2MOVCL,50NEXT:MOVAL,[SI]MOV[DI],ALINCSIINCDIDECCLJNZNEXTHLT┇
┇
┇
MEM112H34HMEM2第二百一十六页,共681页。217四、标志位操作指令LAHFSAHFPUSHFPOPF隐含操作数AH隐含操作数FLAGS第二百一十七页,共681页。2181.
LAHF,SAHFLAHF操作:将FLAGS的低8位装入AHCFPFAFZFCF….AHFLAGSD15D0D7D0SAHF执行与LAHF相反的操作第二百一十八页,共681页。2192.
PUSHF,POPF针对FLAGS的堆栈操作指令
将标志寄存器压栈或从堆栈弹出第二百一十九页,共681页。220算术运算类指令第二百二十页,共681页。221算术运算类指令加法运算指令减法运算指令乘法指令除法指令算术运算指令的执行大多对状态标志位会产生影响第二百二十一页,共681页。222一、加法指令普通加法指令ADD
带进位位的加法指令ADC加1指令INC加法指令对操作数的要求与MOV指令相同第二百二十二页,共681页。2231.
ADD指令格式:
ADDOPRD1,OPRD2操作:
OPRD1+OPRD2ADD指令的执行对全部6个状态标志位都产生影响OPRD1第二百二十三页,共681页。224ADD指令例MOVAL,78HADDAL,99H指令执行后6个状态标志位的状态第二百二十四页,共681页。225ADD指令例01111000+10011001000100011标志位状态:CF=SF=AF=ZF=PF=OF=101010第二百二十五页,共681页。2262.
ADC指令指令格式、对操作数的要求、对标志位的影响与ADD指令完全一样指令的操作:
OPRD1+OPRD2+CFOPRD1ADC指令多用于多字节数相加,使用前要先将CF清零。第二百二十六页,共681页。227ADC指令应用例——求两个20B数的和LEASI,M1LEADI,M2MOVCX,20CLC;使CF=0NEXT:MOVAL,[SI]ADC[DI],ALINCSIINCDIDECCXJNZNEXTHLT┇
┇
┇
M112H34HM2第二百二十七页,共681页。2283.
INC指令格式:
INCOPRD操作:
OPRD+1OPRD常用于在程序中修改地址指针不能是段寄存器或立即数第二百二十八页,共681页。229二、减法指令普通减法指令SUB考虑借位的减法指令SBB减1指令DEC比较指令CMP求补指令NEG减法指令对操作数的要求与对应的加法指令相同第二百二十九页,共681页。2301.
SUB指令格式:SUBOPRD1,OPRD2操作:OPRD1-OPRD2OPRD1对标志位的影响与ADD指令同第二百三十页,共681页。2312.
SBB指令指令格式、对操作数的要求、对标志位的影响与SUB指令完全一样指令的操作:OPRD1-OPRD2-CFOPRD1第二百三十一页,共681页。2323.
DEC指令格式:DECOPRD操作:OPRD-1OPRD指令对操作数的要求与INC相同指令常用于在程序中修改计数值第二百三十二页,共681页。233应用程序例MOVBL,2NEXT1:MOVCX,0FFFFHNEXT2:DECCXJNZNEXT2;ZF=0转NEXT2DECBLJNZNEXT1;ZF=0转NEXT1HLT;暂停执行第二百三十三页,共681页。2344.
NEG指令格式:NEGOPRD操作:0-OPRDOPRD8/16位寄存器或存储器操作数用0减去操作数,相当于对该操作数求补码第二百三十四页,共681页。2355.
CMP指令格式:CMPOPRD1,OPRD2操作:OPRD1-OPRD2指令执行的结果不影响目标操作数,仅影响标志位!第二百三十五页,共681页。236CMP指令用途:用于比较两个数的大小,可作为条件转移指令转移的条件指令对操作数的要求及对标志位的影响与SUB指令相同第二百三十六页,共681页。237CMP指令两个无符号数的比较:
CMPAX,BX
若AX>BX若AX<BXCF=0CF=1第二百三十七页,共681页。238CMP指令两个带符号数的比较CMPAX,BX
两个数的大小由OF和SF共同决定
OF和SF状态相同AX>BX
OF和SF状态不同AX<BX第二百三十八页,共681页。239CMP指令例
LEABX,MAXLEASI,BUFMOVCL,20MOVAL,[SI]NEXT:INCSICMPAL,[SI]JNCGOON
;CF=0转移
XCHG[SI],ALGOON:DECCLJNZNEXTMOV[BX],AL
HLT第二百三十九页,共681页。240程序功能┇
┇
┇
MAXBUFXXHXXHXXH在20个数中找最大的数,并将其存放在MAX单元中。第二百四十页,共681页。241三、乘法指令无符号的乘法指令MUL*带符号的乘法指令IMUL注意点:乘法指令采用隐含寻址,隐含的是存放被乘数的累加器AL或AX及存放结果的AX,DX.第二百四十一页,共681页。2421.无符号数乘法指令格式:
MULOPRD
不能是立即数操作:
OPRD为字节数
OPRD为16位数
AL×OPRDAX×OPRDDXAXAX第二百四十二页,共681页。243无符号数乘法指令例MULBYTEPTR[BX]┇
BXXXHAL×XXHAX第二百四十三页,共681页。244四、除法指令无符号除法指令格式:DIVOPRD有符号除法指令格式:IDIV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下半年浙江杭州西湖风景名胜区所属部分事业单位招考拟聘易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年浙江宁波市江北区慈善总会招聘编外工作人员2人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年浙江城市化发展研究中心招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年浙江台州玉环市市属国企业招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2025年大学《食品卫生与营养学-食品营养分析技术(营养素检测方法)》考试模拟试题及答案解析
- 2025年下半年济宁市邹城市事业单位招考(95名)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年洛阳市孟津县人民政府招聘法律顾问15人易考易错模拟试题(共500题)试卷后附参考答案
- 2025循环经济校招试题及答案
- 公关专员考试题及答案
- 2025年下半年河南郑州巩义市部分委(局)引进事业单位工作人员100人易考易错模拟试题(共500题)试卷后附参考答案
- 加工服装洗水合同范本
- 2025合同范本:产品购销合同模板
- 2025年体育单招文化考试题及答案
- 健康管理教练培训
- 流量计培训课件
- 2025-2026学年统编版九年级上册道德与法治期中评估测试卷(含答案)
- 2025幼儿园诺如病毒应急预案演练方案(范本)
- 330kV升压储能站建设项目施工方案
- (正式版)DB65∕T 3843.4-2015 《棉花生产全程机械化技术规程 第4部分:整地作业》
- 数据资产评估
- 2025新疆文化旅游投资集团有限公司选聘考试笔试试卷【附答案】
评论
0/150
提交评论