第3章_6 8086指令系统(分支CPU指令)及习题
- 格式:ppt
- 大小:387.50 KB
- 文档页数:21
第二章 8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
5.简述8086系统中物理地址的形成过程。
8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。
8086系统采用分段并附以地址偏移量办法形成20位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。
通过一个20位的地址加法器将这两个地址相加形成物理地址。
具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。
由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。
第三章 8086微处理器指令系统习题集一.单项选择题1. 逻辑地址1000:2000对应的物理地址为()。
A. 1200HB. 12000HC. 2100HD. 21000H2. 下面哪个寄存器使用时的默认段寄存器为SS()。
A. AXB. BXC. SPD. SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在()段内寻址。
A.程序B.堆栈C.数据D.附加4.在下面四组寄存器中,第()组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP;B. BX,SP,DX,SIC. IP,SP,BP,AXD. BP,BX,SI,DI5. 含有立即数的指令中,该立即数被存放在()。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为()。
A. 有效地址B. 物理地址C. 逻辑地址D. 相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=(()。
A. 0FFFFHB. 0F47FHC. 2032HD. 0F000H8.现行数据段位于存储器BOOOOH到BOFFFH字节单元,则段寄存器DS的内容及该段长度(字节数)分别为: ()A. BOOOH,1000H B. O0OOH,OFFFHC. BOOOH,OFFFHD. BOOOH,OOFFH9.寄存器间接寻址方式中,操作数在()中。
A. 通用寄存器B. 堆栈C. 存储单元D. 段寄存器10.下列指令中,有语法错误的指令是()。
A. MOV AX,[1000H]B. LEA AL,1000HC. MOV [1000H],ALD. MOV 1000H,AX11. 堆栈的工作方式是()A.先进先出B.随机读写C.只能读出不能写入D.后进先出12. 8086/8088中除()两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
习题三8086指令系统主要内容:8086指令系统。
主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。
1.单选题:(1)执行下面指令序列后,结果是(A)。
MOV AL,82HCBWA、(AX)=0FF82HB、(AX)=8082HC、(AX)=0082HD、(AX)=0F82H(2)与MOV BX,OFFSET VAR指令完全等效的指令是(D )。
A、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D )。
A、CMPB、SUBC、ANDD、MOV(4)下面指令执行后,改变AL寄存器内容的指令是(D )。
A、TEST AL,02HB、OR AL,ALC、CMP AL,BD、AND AL,BL(5)设DH=10H,执行NEG DH指令后,正确的结果是(D )。
A、(DH)=10H,CF=1B、(DH)=0F0H,CF=0C、(DH)=10H,CF=0D、(DH=0F0H,CF=1(6)设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A )。
A、85B92HB、86192HC、BB690HD、12169H(7)下列指令中,执行速度最快的是(C )。
A、MOV AX,100B、MOV AX,[BX]C、MOV AX,BXD、MOV AX,[BX+BP]2.8086 CPU执行如下指令后的结果,以及标志SF、AF、CF、OF的值。
(1)MOV AL,0110 0100BSUB AL,58H ;(AL)=0CH,AF=1DAS ;(AL)=06H, AF=1ADD AL,89H ;(AL)=8FH, AF=0DAA ;(AL)=95H,AF=1,SF=1结果: (AL)=95H, SF=1, AF=1, CF=0, OF=0(2)MOV AL,05HMOV BL,09HMUL BL ;(AX)=002DH, SF、AF、CF、OF=0AAA ; (AX)=0103H;AAM ; ; (AX)=0405H结果: (AX)=0103H, CF=1 , SF=0、AF=1、OF=03.分析执行下列指令序列后的结果:MOV AL,10110101BAND AL,00011111B ;(AL)=0001 0101BOR AL,11000000B ;(AL)=1101 0101BXOR AL,00001111B ;(AL)=1101 1010BNOT AL ;(AL)=0010 0101B4.假设(AL)=10101111B,CF=0,CL=2,写出分别执行下列指令后的结果以及标志位CF、ZF、OF的值。
第3章 8086微处理器的指令系统(1)3.1 指令系统概述● 指令系统是一台计算机所能(识别和执行)的全部指令的集合。
它与(微处理器)有着密切的关系,不同的微处理器有不同的指令系统。
8086CPU 包含133条指令● 指令是使计算机执行某种(特定操作)的二进制编码。
指令一般包括两个部分:(操作码域)和(地址域)。
填空操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。
地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。
● 机器指令:计算机能(直接识别)的二进制代码。
● 汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址,它与机器指令是一一对应的● 汇编程序:将汇编语言源程序翻译成机器语言(就是一条一条的机器指令),即目标程序。
3.2寻址方式● 根据(指令内容)确定(操作数地址)的过程,称为寻址。
● 根据寻址方式计算所得到的地址叫做(有效地址EA ),也就是(段内偏移地址)。
有效地址还需要与相应的(段基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。
牢记什么是EA ?什么是PA ?怎么计算?后面有关于EA 和PA 的解释及计算方法!● 寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。
如果没有特别说明,寻址方式是指源操作数的寻址方式。
1、隐含寻址(隐含了规定的操作数)例:DAA 指令,只有操作码,无操作数。
规定对AL 中的内容进行压缩BCD 码转换。
2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器)例:MOV AX ,1234H (若CS=1000H ,IP=100H )3、寄存器寻址(操作数就放在内部寄存器中,不需访问存储器)例:INC CX ;(CX)←(CX)+1 MOV AX ,BX ;执行后BX 内容不变 4、直接寻址(指令中直接给出操作数的存放地址) 例1:MOV AX ,[4000H] (DS =3000H )☞操作数寻址 可以进行寄存器寻址的寄存器: (16位)AX 、BX 、CX 、DX 、SI 、DI 、SP 、BP(8位) AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL例2:MOV ES:[1234H],BL (ES =4000H )注意:(1)指令中给出的[4000H]和[1234H]是操作数的偏移地址。
第三章 8086微处理器指令系统习题集一.单项选择题1. 逻辑地址1000:2000对应的物理地址为()。
A. 1200HB. 12000HC. 2100HD. 21000H2. 下面哪个寄存器使用时的默认段寄存器为SS()。
A. AXB. BXC. SPD. SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在()段内寻址。
A.程序B.堆栈C.数据D.附加4.在下面四组寄存器中,第()组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP;B. BX,SP,DX,SIC. IP,SP,BP,AXD. BP,BX,SI,DI5. 含有立即数的指令中,该立即数被存放在()。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为()。
A. 有效地址B. 物理地址C. 逻辑地址D. 相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=(()。
A. 0FFFFHB. 0F47FHC. 2032HD. 0F000H8.现行数据段位于存储器BOOOOH到BOFFFH字节单元,则段寄存器DS的内容及该段长度(字节数)分别为: ()A. BOOOH,1000H B. O0OOH,OFFFHC. BOOOH,OFFFHD. BOOOH,OOFFH9.寄存器间接寻址方式中,操作数在()中。
A. 通用寄存器B. 堆栈C. 存储单元D. 段寄存器10.下列指令中,有语法错误的指令是()。
A. MOV AX,[1000H]B. LEA AL,1000HC. MOV [1000H],ALD. MOV 1000H,AX11. 堆栈的工作方式是()A.先进先出B.随机读写C.只能读出不能写入D.后进先出12. 8086/8088中除()两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
第3章8086寻址⽅式和指令系统-题第3章8086寻址⽅式和指令系统⼀、单项选择题(共50⼩题)1、指令MOV AX,[3070H]中源操作数的寻址⽅式为()A、寄存器间接寻址B、⽴即寻址C、直接寻址D、变址寻址2、DS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器3、CF是()A、进位标志位B、辅加进位标志位C、符号标志位D、全零标志位4、SS是_()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器5、指令MOV [BX],AX中A、⽬的操作数是寄存器操作数B、源操作数是存储器操作数C、⽬的操作数是存储器操作数D、源操作数是⽴即操作数6、CS是()A、数据段寄存器B、代码段寄存器C、堆栈段寄存器D、附加数据段寄存器B、源操作数存于堆栈段C、⽬的操作数存于数据段D、⽬的操作数存于堆栈段8、BX是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、16位变址寄存器9、ZF是()A、进位标志B、⽅向标志C、符号标志D、零标志10、IP是()A、指令指针寄存器B、堆栈指针寄存器C、通⽤寄存器D、变址寄存器11、SI是()A、8位通⽤寄存器B、16位通⽤寄存器C、16位段寄存器D、指令指针寄存器12、DL是()A、16位段寄存器B、16位通⽤寄存器C、8位通⽤寄存器D、16位标志寄存器13、指令IDIV BX 的含义是()A、(AX)/(BX)B、(DX:AX)/(BX)C、(AL)/(BX)D、(AL)/(BL)B、DXC、BPD、DI15、设SS=2000H,执⾏下列程序段后SP=()MOV SP,2000HPUSH AXA、21FFEHB、20000HC、22000HD、22002H16、寄存器间接寻址⽅式中,操作数在( )中。
A、通⽤寄存器B、堆栈C、内存单元D、段寄存器17、JMP WORD PTR[DI]是( )A、段内间接转移B、段间间接转移C、段内直接转移D、段间直接转移18、堆栈指针SP的作⽤是( )。
第三章8086的指令系统3.1 8086指令系统概述所谓一个微处理器的指令系统是一个微处理器所执行的全部指令的集合。
在8086的指令系统中一共有133条指令。
8086指令系统是在8位微处理器8080/8085的指令系统基础上设计的,它兼容了8080/8085的全部指令,这部分对8位微处理器具有兼容性的指令往往是处理字节(8位)的。
此外,8086还有自己所特有的对字或字符串的处理指令,以及对带符号数的运算指令、中断指令和协处理器指令。
对微处理器的指令的描述,一般有两种表示方法:指令的机器码和汇编指令。
无论对于机器码指令还是对于汇编指令均要解决三个问题(三个信息)(1)指令要完成什么操作(操作码);(2)参加这个操作的操作数在哪里(操作数);(3)操作结果放在哪里(结果);为了简化指令,通常在微机系统中规定:操作结果要放在某一个操作数中。
如MOV AL,08H;ADD AX,BX;(源操作数,目标操作数)这样,就将指令所要提供的信息简化为了两部分:操作码、操作数。
指令的机器码就是用二进制码描述指令的操作码和操作数的一种方式,实际上在微机系统内部,指令就是以机器码的形式存在的。
所谓的汇编指令是用指令功能的英文缩写表示操作码,用数字和符号表示操作数的指令描述方法。
例如操作码操作数MOV AX,2000H操作码B8H操作数:00H20H由于汇编语言程序有便于理解、识别、阅读和交流的优点。
所以汇编指令得到了广泛的应用。
但由于最终在机器中使用的是机器码,所以要有一个中间环节就是对其进行翻译。
3.2 8086指令的寻址方式所谓寻址方式就是寻找操作数的方式,所以寻址方式实际上在两种情况下被涉及:一种是用来对操作数进行寻址;另一种是对转移地址和调用地址进行寻址。
下面我们所讨论的寻址方式都是针对操作数的,关于指令地址的寻址,将在讲述转移指令和调用指令时作具体说明。
一条指令的机器码通常包含操作码(OP)和操作数两部分。
第三章8086微处理器指令系统习题答案一、单项选择题1.B2.C3.B4.D5.A6.C7.B8.C9.C10. D11.D12.C13.C14.A15.C16.B17.C18.B19.D20. D 21.B22.D23.A24.D25.A26.A27.A28.D29.C30. A 31.D32.C33.B34.D35.D36.D37.A38.B39.B40. B41.B42.A43.D44.D45.A46.C47.D48. C二、多项选择题1.ABC2.ABCD3.ABF4.BF5.BCD6.CD7.ABCDE8.BD三、填空题1.操作码,操作数2段地址,10H,偏移地址,02051H3.AA92AH4.立即,基址变址5.5425H6.D36AH7.源操作数为8位,目的操作数为16位,不匹配;源操作数和目的操作数不能同时为存储器;INC指令操作数不能为立即数;目的操作数的的地址大于字节。
8.6310H9.0132H,0112H10.0000H,1,1,0,011.1202H,1200H,2000H12.除413.7230H14.12AAH,0BBCCH15.6804H16.3,017.4154H,6F30H18.0,00FFH,0四、判断题×V ××V ××V ×V××××V ×V ×××五、读程序,指出结果1.11H2.5678H,1234H3.80H,04.1,15. 16.0132H,0112H7.01H,00H,08H8.0,09.79H,6H,7FH10.60H,35H11.37H,LAB2六、问答题3.(1) CF=0;ZF=0;PF=1;OF=0 (2) CF保持;ZF=0;PF=0;OF=0(3)CF=0;ZF=0;PF=0;OF=0 (4) PF=14. 解:5. 解:这两条指令的区别是,指令“MOV EAX,[ESI]”是将内存单元DS:[ESI]中的内容读到CPU中的寄存器EAX;而指令“MOV [ESI],EAX”是将CPU中寄存器EAX中的内容写入内存单元DS:[ESI]。
第三章 8086指令系统3.1基本数据类型1.IA-32结构的基本数据类型是字节(8位)、字(16位)、双字(32位)、四字(64位,486中引入的)和双四字(128位,Pentium3中引入的)。
2.低字节占用内存中的最低地址,该地址也是此操作数的地址。
图:P44 图3-13.字、双字、四字的自然边界是偶数编号的地址,字的自然边界是偶数编号的地址,双字和四字的自然边界地址要分别能被4和8除尽。
4.数据结构要尽可能在自然边界上对齐5.对于不对齐的存储访问,处理器要求做两次存储访问操作;而对于对齐的访问,只要进行一次存储访问操作。
6.数字数据类型(学生自学)PPT3.28086的指令格式一、 指令格式Label(标号):mnemonic(助记符)argument1(参数1), argument2(参数2), argument3(参数3)其中:1.标号是一个标识符,后面跟有冒号2.助记符是一类具有相同功能的指令操作码的保留名3.操作数的三个参数是任选的,可以有零到三个操作数,操作数参数的数量取决于操作码4.操作数参数可能是文字或数据项的标识符,也可能是寄存器的保留名或在程序的另一部分声明的赋予数据项的标识符。
5.在算术和逻辑指令中存在两个操作数时,右边的操作数是源,左边的操作数是目的。
例如:LOADREG: MOV AX, SUBTOTAL 功能是把由SUBTOTAL表示的源操作数传送至AX寄存器。
3.38086/8088指令的操作数寻址方式寻找操作数,操作数能定位在指令中、寄存器中、存储单元中以及I/O 端口中。
1. 立即数用包含在指令中的操作数作为源操作数,这些操作数即为立即操作数。
立即数可以是8位或16位,立即数常用来给寄存器或内存单元赋初值。
例1 MOV AX , 2056H结果 ( AH ) = 20H ( AL ) = 56H 例2 MOV AL , 78 H 结果 ( AL ) = 78H2. 寄存器操作数操作数在寄存器中,指令中指定寄存器名8 位操作数, 用 8 位寄存器: AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL16 位操作数,用 16 位寄存器: AX 、BX 、CX 、DX 、SP 、BP 、SI 、DICS 、DS 、SS 、ES例1 MOV AX , 2056H 执行后:(AX)=2056H 例2 MOV BL , AH 执行前:(BL) = 12H, (AH) = 78H 执行后:(BL) = 78H (AH) = 78H▲ 立即数寻址、寄存器寻址的操作数, 不用在取完指令后再到内存中取数。