文档库 最新最全的文档下载
当前位置:文档库 › 第三章+8086指令系统4

第三章+8086指令系统4

第三章8086的寻址方式和指令系统

IV

1

2

程序控制转移指令

μ用来改变程序的流程,适应实际问题的需要;

μ会改变IP 和/或CS 的内容;

μ分类:无条件转移指令有条件转移指令

循环控制转移指令

子程序调用指令

中断指令

μ条件转移指令中的条件由影响标志状态的运算指令产生。

μ除中断指令外,其他转移指令都不影响状态标志位。

五、控制转移指令

8086提供了无条件转移和过程调用,条件转移,循环控制以及中断等几类,总结如表3-9。皆利用控制转移指令可以改变CS和IP的值,从而改变指令的执行顺序。

1. 无条件转移指令

(1) JMP无条件转移指令(Jump)

指令格式:JMP 目的

使程序无条件地转移到指令指定的目的地址去执行。如何分成四类?

3

这类指令又分成两种类型:第一种类型:段内转移,或近(NEAR)转移,转移指令的目的地址和JMP指令在同一代码段中,转移时仅改变IP寄存器的内容,段地址

的值不变。

第二种类型:段间转移,或远(FAR)转移,转移指令的目的地址和JMP指令不在同一代码段中,发生转移时,CS和IP的值都要改变,也就是说程序要转到另一代码段去执行。第二种方式:间接转移,目的地址包含在某个16位寄存器或存储单元中,CPU必须根据寄存器或存储器寻址方式,间接地求出转移地址。同样可分为段内间接转移和段间间接转移。

4

5

指令格式:

JMP SHORT 标号

;段内短转移,8位位移量,转移范围-128~+127

JMP NEAR PTR 标号/JMP 标号

;段内近转移,16位位移量,

;转移范围-32768~+32767

该指令转向的有效地址等于当前IP 的内容加

上8位或16位的位移量。

下面是一个简单程序的列表文件,它是由汇编语言源程序经

汇编程序翻译后产生的.

;偏移量机器码程序

000290

0003 EBFB

0005 90

0006

6

?段内间接转移指令

这类指令转向的16位有效地址存放在一个16位寄存器或字存储器单元中,

即IP 寄存器内容(字存储器单元内容)。

例 1. MOV BX, 1000H

JMP BX ;程序转向1000H,IP=1000H

2.JMP WORD PTR [BX+20H]

设DS=2000H,[21020H]=34H,[21021H]=12H

则第二个JMP将程序转向1234H,即IP=1234H

7

?段间直接(远)转移指令(从一个段转到另一个段)

指令格式:JMP FAR PTR PROG_F

IP=PROG_F的段内偏移量,CS=PROG_F的段地址

例:CODE1 SEGMENT

……

JMP FAR PTR LB1

……

CODE1 ENDS

CODE2 SEGMENT

LB1:……

CODE2 ENDS

8

?段间间接转移指令

将目的地址的段地址和偏移量事先放在存储器中的4个连续地址单元中,其中前两个字节为偏移量,后两个字节为段地址,转移指令中给出存放目标地址的存储单元的首字节地址值。这种指令的目的操作数前要加说明符DWORD PTR,表示转向地址需取双字。

例MOV SI , 1300H

JMP DWORD PTR [SI+0125H]

假设DS=2500H,存储单元的内容见下页图,

则执行后,CS=?, IP=?

9

10 JMP指令执行过程

11

总结

跳转分成两大类:

段内跳转:直接转移(IP 由指令直接给出)

间接转移(IP 在寄存器或存储器中)

特点:此类转移只改变IP 的值

段间跳转:直接转移(CS 、IP 由指令直接给出)

间接转移(CS 、IP 在存储器中)

特点:此类转移CS 和IP 的值均变化

12

(2)过程调用和返回指令(Call and Return)

指令格式: CALL 过程名;该指令在主程序中

RET ;该指令在子程序的末尾

]段内直接调用和返回

例CALL PROG_N

]段内间接调用和返回例CALL BX CALL WORD PTR [BX+SI]]段间直接调用

例CALL FAR PTR PROG_F

]段间间接调用

例CALL DWORD PTR [BX]

当程序中相同功能的一段代码用的比较频繁时,可以将它分离出来写成一个子程序,在主程序中用CALL 指令来调用它。不用重复写相同的代码,仅利用CALL 指令就可以完成多次同样的工作。CALL 指令中目标地址的四

种寻址方式

CALL的操作步骤

1.CALL指令下一条指令的地址(返回地址)推入堆栈: sp<—sp-2, IP入栈;近调用

sp<—sp-2, CS入栈;远调用

sp<—sp-2, IP入栈

2.转入子程序的入口地址执行相应子程序:

入口地址由CALL指令的目的操作数提供,寻址方式与JMP基本一样,存在上述4种方式。

IP或IP和CS被重新装入子程序的地址,即为转入入

口地址。

13

14

RET 的执行内容

执行过程中的RET 指令后,从栈中弹出返回地址,使程序返回主程序继续执行。

两种情况:

1.从近过程返回,则从栈中弹出一个字—>IP ,并且使SP<—SP+2。

2.从远过程返回,则先从栈中弹出一个字—>IP ,并且使SP<—SP+2;再从栈中弹出一个字—>CS ,并使SP<—SP+2。

16

v CALL 1000H

v CALL BX ;段内间接调用

v CALL WORD PTR [BX+SI]

v CALL 2500H:3600H

;调用的段地址和偏移地址都在指令中给出

v CALL FAR PTR PROG_F

v CALL DWORD PTR [DI]

;调用地址在DI,DI+1,DI+2,DI+3所指内存单元中,前两个为偏移量IP ,后两个为段地址CS

带参数返回的形式RET N

N:弹出值,当CPU返回地址后,再从堆栈中弹出N 个字节的数据,即SP+N—>SP,跳过堆栈空间中的N个单元;

N可以是0000~FFFFH范围内的任何一个偶数;

作用:主程序调用过程前,通过堆栈向过程传递参数(N/2个),过程在运行中可以通过堆栈指针使用。当过程返回时,这些参数已经没有用途了,应该将其从栈中弹出,将堆栈指针修正到调用前的状态。避免使用POP指令。堆栈的平衡

17

RET 8 ;从堆栈弹出地址,再使SP+8

RET 4

;返回主程序后,使原来存放在堆栈中的2个

参数被舍弃。从堆栈弹出地址,再使SP+4

18

19

2.条件转移类指令

条件转移指令是根据上一条指令执行后,CPU 设置的状态标志作为判别测试条件来决定是否转移。所有的条件转移均为段内短转移,节省指令长度和提高程序执行效率;目标地址由当前IP 值+指令中的8位相对偏移量组成,即允许距离为-128 ~ +127。指令格式: 条件操作符号标号(目标地址)

条件转移指令共有18条,分成2大类。

条件转移指令通常用在比较指令或算术逻辑运算指令之后,根据比较或运算结果,转向不同的目的地址。

20

第4章指令系统层习题参考解答-汇编语言与计算机组成原理 答案

1.什么是“程序可见”的寄存器? 程序可见寄存器是指在用户程序中用到的寄存器,它们由指令来指定。 2. 80x86微处理器的基本结构寄存器组包括那些寄存器?各有何用途? 基本结构寄存器组按用途分为通用寄存器、专用寄存器和段寄存器3类。 通用寄存器存放操作数或用作地址指针;专用寄存器有EIP和EFLAGS,分别存放将要执行的下一条指令的偏移地址和条件码标志、控制标志和系统标志;段寄存器存放段基址或段选择子。 3.80x86微处理器标志寄存器中各标志位有什么意义? 常用的7位: CF进位标志: 在进行算术运算时,如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。在移位类指令中,CF用来存放移出的代码(0或1)。 PF奇偶标志: 为机器中传送信息时可能产生的代码出错情况提供检验条件。 当操作结果的最低位字节中1的个数为偶数时置1,否则置0。 AF辅助进位标志: 在进行算术运算时,如低字节中低4位(第3位向第4位)产生进位或借位时,则AF置1;否则AF置0。 ZF零标志:如指令执行结果各位全为0时,则ZF置1;否则ZF置0。 SF符号标志:其值等于运算结果的最高位。 如果把指令执行结果看作带符号数,就是结果为负,SF置1;结果为正,SF置0。 OF溢出标志: 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。 DF方向标志: 用于串处理指令中控制处理信息的方向。 当DF位为1时,每次操作后使变址寄存器SI和DI减小;当DF位为0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。 4.画出示意图,简述实模式下存储器寻址的过程。 20位物理地址如下计算(CPU中自动完成):10H×段基址+偏移地址=物理地址 5. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。 采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。

第三章指令系统

第5章指令系统 一、判断题 (×)1.执行指令时,指令在内存中的地址存放在指令寄存器中。 (√)2.程序计数器PC用来指示从内存中取指令。 (√)3.同一系列的不同型号的计算机,保持软件向上兼容的特点。 (√)4.在计算机的指令系统中,真正必须的指令数是不多的,其余的指令都是为了提高机器速度和便于编程而引入的。 (×)5.RISC的主要目标是减少指令数,因此允许以增加每条指令的功能的办法来减少指令系统所包含的指令数。 二、选择题 1.在计算机的指令系统中采用不同的寻址方式的主要目的是 C 。 A.实现程序控制和快速查找存储器地址 B.可以直接访问主存和外存 C.缩短指令长度,扩大寻址空间,提高编程的灵活性 D.降低指令的译码难度 2.单操作数指令的操作数由 B 提供。 A.指定寄存器或由操作码指定存储单元 B.由地址码指定的存储单元;如果已标明该存储单元的内容为地址,则由该地址所指定的存储单元 C.由操作码直接指定数据 D.由操作码直接指定的存储单元 3.在多地址指令中,算术运算结果不会存储在 A 中。 A.累加器B.第一地址码所指定的存储空间 C.第二地址码所指定的存储空间D.第三地址码所指定的存储空间 4.把存储单元A的内容传送到存储单元B的指令执行后,存储单元A的内容为 B 。A.空白或零,视机器而定B.与存储单元B的内容相同 C.二进制补码D.存储单元A的内容与存储单元B的内容之差 三、填空题 1.指令操作码通常有两种编码格式:固定格式和可变格式。 2.在当前的计算机中,指令的执行方式有3种,就是顺序执行方式,重叠执行方式和流水线方式。 3.数据传送类指令实现的功能是传送数据,它往往是在主存储器和寄存器之间,或寄存器和寄存器之间传送数据。 4.所谓堆栈,是主存中专门用来存放数据的一个特定的区域,它具有先进后出的性质。 5.Intel 8086/8088的字符串操作指令用来处理存放在存储器中的一串字符或数据。6.内存地址寄存器用来指示从内存中取数据。 7.浮点运算指令对于用于科学计算的计算机是很必要的,可以提高机器的运算速度。四、名词解释 1.计算机指令系统:是指一台计算机上全部指令的集合,也称为计算机的指令集。 2.固定格式:操作码的长度是固定的,集中放在指令字的某一个字段中。 3.可变格式:操作码的长度可变,且分散地放在指令字的不同字段中。 4.寻址:就是寻找操作数的地址,最终目的是寻找所需的操作数。 五、简答题

第四章指令系统习题参考答案

1.ASCll码是7位,如果设计主存单元字长为32位,指令字长为12位,是否合理?为什 么? 解:指令字长设计为12位不是很合理。主存单元字长为32位,一个存储单元可存放4个ASCII 码, 余下4位可作为ASCII码的校验位(每个ASCII码带一位校验位),这样设计还是合理的。 但是,设计指令字长为12 位就不合理了,12位的指令码存放在字长32位的主存单元中,造成19位不能用而浪费了存储空间。 2.假设某计算机指令长度为20位,具有双操作数、单操作数、无操作数三类指令形式,每个操作数地址规定用6位表示。问: 若操作码字段固定为8位,现已设计出m条双操作数指令,n条无操作数指令,在此情况下,这台计算机最多可以设计出多少条单操作数指令? 解:这台计算机最多可以设计出256-m-n条单操作数指令 3.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 单字长二地址指令;

② 操作码OP可指定=64条指令; ③ RR型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定16个寄存器 之一); ④ 这种指令格式常用于算术逻辑类指令。 4.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 双字长二地址指令;

② 操作码OP可指定=64条指令; ③ RS型指令,两个操作数一个在寄存器中(16个寄存器之一),另一个在存储器中; ④ 有效地址通过变址求得:E=(变址寄存器)± D,变址寄存器可有16个。 5.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 单字长二地址指令;

微机原理第四章习题答案

1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。其中寄存器寻址的指令执行速度最快。 2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=120 0H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少? (1)MOV AX,[64H]答:寻址方式为直接寻址;PA=60064H (2)MOV AX,NUM 答:寻址方式为直接寻址;PA=60005H (3)MOV AX,[SI]答:寻址方式为寄存器间接寻址;PA=60100H (4)MOV AX,[BX]答:寻址方式为寄存器间接寻址;PA=60300H (5)MOV AX,[BP]答:寻址方式为寄存器间接寻址;PA=50400H (6)MOV AL,[DI]答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H]答:寻址方式为寄存器相对寻址;PA=61410H (8)MOV AX,NUM[BX]答:寻址方式为寄存器相对寻址;PA=60305H (9)MOV AX,[BX+SI]答:寻址方式为基址变址寻址;PA=60400H (10)MOV AX,NUM[BX][DI]答:寻址方式为相对基址变址寻址;PA=61505H 3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有 效地址。 (1)直接寻址答:有效地址为EA=C237H (2)用BX的寄存器间接寻址答:有效地址为EA=637DH (3)用BX的相对寄存器间接寻址答:有效地址为EA=125B4H (4)基址加变址寻址答:有效地址为EA=8E18H (5)相对基址变址寻址答:有效地址为EA=1504FH 其中,(3)和(5)中产生进位,要把最高位1舍去。

(完整版)第三章指令系统

第三章指令系统习题参考答案(三) 1、80C51系列单片机的指令系统有何特点? 答:80c51的指令系统的特点有:(1)执行时间短。一个机器周期指令有64条,2个时间周期指令有45条,而4个机器周期指令仅有2条(即乘法和除法指令);(2)指令编码字节少。单字节的指令有49条,双字节的指令有45条,三字节的指令仅有17条;(3)位操作指令丰富。这是80c51单片机面向控制特点的重要保证。 2、80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器 空间如何? 答:(1)寄存器寻址。 对应的寄存器有: ·工作寄存器R0~R7 ·累加器A ·寄存器B ·数据指针DPTR (2)直接寻址。 对应的存储空间有: ·片内RAM低128字节(以地址形式表示) ·SFR(以地址形式或SFR符号形式表示,但符号将转换为相应的SFR 地址) (3)寄存器间接寻址。 对应的空间有: ·片内RAM(采用@R0,@R1或SP); ·片外RAM(采用@R0,@R1或@DPTR) (4)变址寻址。 对应的空间有: ·ROM空间(采用@A+DPTR,@A+PC) (5)相对寻址。 ·ROM空间(采用JC rel) (6)位寻址。 ·片内RAM的20H~2FH单元的128可寻址位 ·SFR的可寻址位 3、访问特殊功寄存器SFR可以采用哪些寻址方式? 答:直接寻址、位寻址 4、访问内部RAM单元可以采用哪些寻址方式? 答:寄存器寻址、直接寻址、寄存器间接寻址 5、访问外部RAM单元可以采用哪些寻址方式? 答:寄存器间接寻址 6、访问外部程序存储器可以采用哪些寻址方式? 答:立即寻址、变址寻址、相对寻址 7、为什么说布尔处理功能是80C51单片机的重要特点? 答:布尔处理功能是MCS-51系列单片机的一个重要特征,在物理结构

第三章 80868088的指令系统

3.1 指令的基本格式   一、指令构成 微计算机的指令系统通常由几十种或百余种指令组成(可见表2-1)。每种指令又由两个字段(Field)构成: l.操作码(OP-Code)字段 该字段指示计算机所要执行的操作类型,由一组二进制代码表示,在汇编语言中又用助记将(Mnemonic)代表。8086执行指令时,首先将操作码从指令队列取入执行部件EU中的控制单元,经指令译码器识别后,产生执行本指令操作所需的时序性控制信号,控制计算机完成规定的操作。 2.操作数(Oprand)字段 该字段则是指出指令执行的操作所需的操作数。在操作数字段中,可以是操作数本身,或是操作数地址或是操作数地址的计算方法。微计算机中此字段通常可有一个或两个,称前者为单操作数指令,称后者为双操作数指令。而双操作数又分别称为源操作数src (source)和目的操作数dst(destination)。在指令执行之前,src和dst均为参加运算处理的两个操作数,指令执行之后,在dst中则存放运算处理的结果。 指令的基本格式如下:   二、8086   8086的指令长度可在1~6字节的范围,如图3-1所示。其中B l和B0为基本字节,B3~B6将根据不同指令作相应的安排。   (1)B1字节各字段定义如下: OP--指令操作码。 D--表示方向。D=1寄存器为目的,D=0寄存器为源。 W--表示字节或字处理方式。W=0为字节指令,W=1为字指令。

(2)B2字节各字段定义如下: MOD--给出指令的寻址方式。8086的一条指令中,最多可使用两个操作数,它们不能同时位于存储器中,最多只能有一个是存储器操作数。当MOD=11时为存储器方式,即有一个操作数位于存储器中;MOD=00,没有位移量; MOD01,只有低8位位移量,需将符号扩展8位,形成16位; MOD=10有16位位移量。当MOD=1l时,为寄存器方式,两个操作数均为寄存器。 REG--表示指令中只有一个操作数,这个操作数为寄存器,可见表3-1,表中左部示出寄存器对应的编码。 R/M--R/M受MOD制约。当 MOD=11(即寄存器方式时),由此字段给出指令中第二个操作数所在的寄存器编码;当MOD≠11时,此字段用来指出应如何计算指令中使用的存储器操作数的有效地址。MOD和R /M字段表示的有效地址 EA计算方法如表3-1所示,共2 4种。   (3) B3~B6字节这四个字节一般是给出存储器操作数地址的位移量(即偏移量)和/或立即操作数。位移量可为8位,也可为16位,这由MOD来决定。8086规定16位的字位移量的低位字节放于低地址单元,高位字节放于高地址单元。 若指令中只有8位位移量, 8086在计算有效地址时,自动用符号将其扩展成一个16位的双字节数,以保证有效地址的计算不产生错误,实现正确的寻址。指令中的立即操作数位于位移量的后面。若B3,B4有位移量,立即操作数就位于B5,B6。若指令中无位移量,立即操作数就位于B3,B4字节。总之,指令中缺少的项将由后面存在的项向前顶替,以减少指令长度。 3.2 8086的寻址方式   8086的操作数可隐含在操作码中,也可以是操作数字段中的操作数本身,还可以是存放操作数的地址,如寄存器,I/0端口及存储器。对存储器,给出的或是存储器地址,或是产生存储器地址的信息。从表3

第四章指令系统习题参考答案

1.ASCll 码是7位,如果设计主存单元字长为32 位,指令字长为12位,是否合理?为什么? 解:指令字长设计为12 位不是很合理。主存单元字长为32 位,一个存储单元可存放4 个ASCII 码,余下4 位可作为ASCII 码的校验位(每个ASCII 码带一位校验位),这样设计还是合理的。但是,设计指令字长为12 位就不合理了,12 位的指令码存放在字长32 位的主存单元中,造成19 位不能用而浪费了存储空间。 2. 假设某计算机指令长度为20 位,具有双操作数、单操作数、无操作数三类指令形式,每个操作数地址规定用6 位表示。问: 若操作码字段固定为8位,现已设计岀m条双操作数指令,n条无操作数指令,在此情况下,这 台计算机最多可以设计出多少条单操作数指令? 解:这台计算机最多可以设计岀256-m-n 条单操作数指令 3.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ①单字长二地址指令;

②操作码OP 可指定=64 条指令; ③RR 型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定16 个寄存器 之一); ④这种指令格式常用于算术逻辑类指令。 4 .指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ①双字长二地址指令; ②操作码OP 可指定=64 条指令; ③RS 型指令,两个操作数一个在寄存器中(16 个寄存器之一),另一个在存储器中; ④有效地址通过变址求得:E= (变址寄存器)± D ,变址寄存器可有16 个。 5 .指令格式结构如下所示,试分析指令格式及寻址方式特点。

第3章答案指令系统1-40..

第3章指令系统 1,简述下列基本概念:指令,指令系统,机器语言,汇编语言,高级语言。1、指令:CPU根据人的意图来执行某种操作的命令 指令系统:一台计算机所能执行的全部指令集合 机器语言:用二进制编码表示,计算机能直接识别和执行的语言 汇编语言:用助记符、符号和数字来表示指令的程序语言 高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言 2,什么是计算机的指令和指令系统? 2、见第1题。 3,简述89C51汇编指令格式。 3、操作码[目的操作数] [,源操作数] 4,简述89C51寻址方式和所能涉及的寻址空间。 5,要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式? 5、SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址 6,在89C51片内RAM中,已知(30H)=38H, (38H)=40H, (40H)=48H, (48H)=90H, 请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。 6、MOV A,40H ;直接寻址(40H)→A MOV R0,A ;寄存器寻址(A)→R0 MOV P1,#0F0H ;立即数寻址0F0→P1

MOV @R0,30H ;直接寻址(30H)→(R0) MOV DPTR,#3848H ;立即数寻址3848H→DPTR MOV 40H,38H ;直接寻址(38H)→40H MOV R0,30H ;直接寻址(30H)→R0 MOV P0,R0 ;寄存器寻址(R0 )→P0 MOV 18H,#30H ;立即数寻址30H→18H MOV A,@R0 ;寄存器间接寻址((R0)) →A MOV P2,P1 ;直接寻址(P1)→P2 最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:→左边是内容,右边是单元 7,对89C51片内RAM的高128字节的地址空间寻址要注意什么 7、用直接寻址,位寻址,寄存器寻址 8,指出下列指令的本质区别。 8,MOV A,DATA ;直接寻址2字节1周期 MOV A,#DATA ;立即数寻址2字节1周期 MOV DATA1,DATA2 ;直接寻址3字节2周期 MOV 74H,#78H ;立即数寻址3字节2周期 如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录A 9,设R0内容为32H, A的内容为48H, 片内RAM的32H单元内容为80H, 40H单元内容为08H, 请指出在执行下列程序段后上述各单元内容的变化。 9、 MOV A,@R0 ;((R0))=80H→A MOV @R0,40H ;(40H)=08H→(R0) MOV 40H,A ;(A)=80→40H MOV R0,#35H ;35H→R0 最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H 10,如何访问SFR,可使用哪些寻址方式? 10、用直接寻址,位寻址,寄存器寻址 11,如何访问片外RAM,可使用哪些寻址方式? 11、只能采用寄存器间接寻址(用MOVX指令) 12,如何访问片内RAM,可使用哪些寻址方式? 12、低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7) 高128字节:直接寻址,位寻址,寄存器寻址 13,如何访问片内外程序存储器,可使用哪些寻址方式? 13、采用变址寻址(用MOVC指令)

Microsoft Word - 第4章练习题doc-第四章 8086CPU 结构

第四章 8086CPU结构 一、选择 1.取指令时,8086使用___________段寄存器值作为段基值。 A.CS B.SS C.DS D.ES 2.8086在响应外部HOLD请求后,( )。 A)转入特殊中断服务程序B)进入等待周期 C)只接收外部数据D)所有三态引脚处于高阻,CPU放弃对总线控制权。 3.优先级最高的中断是()。 A.1NTR B.NMI C.IR0 D.IR7 4.8086CPU工作在最大模式还是最小模式取决于信号。 A)B) NMI C)MN/D)ALE 5.8086CPU用信号的下降沿在T1结束时将地址信息锁存在地址锁存器中。 A)B)C)ALE D)READY 6.在8088的总线操作中,将数据写入存储器的时刻是 。 (A) ALE信号的下降沿 (B)DEN信号的上升沿 (C) WR信号的上升沿 (D)RD信号的上升沿 7.某段数据的起始地址为20000H,末地址为2FFFFH,则段寄存器DS内容为()。 A.0000H B.1000H C.2000H D.20000H 8.8086在最小模式下,分时使用AD0-AD15,所以必须外接地址锁存器,当总线上为地 址信息时,通过信号()将地址送入地址锁存器。 A)DEN B)ALE C)BHE D)DT/ R 9.在中断方式下,外设数据输入到内存的路径是______。 A.外设→数据总线→内存 B.外设→数据总线→CPU→内存 C.外设→CPU→DMAC→内存 D.外设→I∕O接口→CPU→内存 10.RESET信号有效后,8086 CPU执行的第一条指令地址为() A.00000H B.0FFFFFH C.0FFFF0H D.0FFFFH 11.中断向量表中存放的内容是( ) A.中断服务程序入口地址 B.中断断点地址 C. 操作数所在的内存地址 D.中断服务程序入口地址表的地址 12.CPU响应INTR引脚上来的中断请求的条件之一是。 A)IF=0 B)IF=1 C)TF=0 D)TF=1 13.断点中断的中断类型码是。 A)1 B)2 C)3 D)4 14.8086/8088可用于间接寻址的寄存器有 个。 (A)2 (B)4 (C) 6 (D) 8 15.堆栈的工作方式是 。(A)先进后出 (B)后进后出 (C)先进先出 二、填空 1.8086是16位的微处理器,Pentinum是____位的微处理器。 2.

第四章指令系统习题参考答案

1. ASCll 码是 7 位,如果设计主存单元字长为 32 位,指令字长为 12 位,是否合理?为什 么? 解:指令字长设计为 12 位不是很合理。主存单元字长为 32 位,一个存储单元可存放 4 个 ASCII 码, 余下 4 位可作为 ASCII 码的校验位(每个但是,设计指令字长为 12 位就不合理了, ASCII 码带一位校验位),这样设计还是合理的。 12 位的指令码存放在字长 32 位的主存单元中, 造成 19 位不能用而浪费了存储空间。 2. 假设某计算机指令长度为20 位,具有双操作数、单操作数、无操作数三类指令形式,每个操 作数地址规定用 6 位表示。问: 若操作码字段固定为 8 位,现已设计出 m 条双操作数指令, n 条无操作数指令,在此情况下,这 台计算机最多可以设计出多少条单操作数指令? 解:这台计算机最多可以设计出 256-m-n 条单操作数指令 3.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 单字长二地址指令; ② 操作码 OP 可指定 =64 条指令; ③ RR 型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定 16 个寄 存器 之一); ④ 这种指令格式常用于算术逻辑类指令。 4.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下: ① 双字长二地址指令; ② 操作码 OP 可指定 =64 条指令; ③ RS 型指令,两个操作数一个在寄存器中( 16 个寄存器之一),另一个在存储器中; ④ 有效地址通过变址求得: E=(变址寄存器)± D ,变址寄存器可有 16 个。

第4章指令系统(考研组成原理)

4.1.2习题精选 一、单项选择题 1.以下有关指令系统的说法中错误的是( )。 A.指令系统是一台机器硬件能执行的指令全体 B.任何程序运行前都要先转化为机器语言程序 C.指令系统是计算机软件、硬件的界面 D.指令系统和机器语言是无关的 2.在CPU执行指令的过程中,指令的地址由( )给出。 A.程序计数器PC B.指令的地址码手段 C.操作系统D.程序员 3.下列一地址运算类指令的叙述中,正确的是( ) A.仅有一个操作数,其地址由指令的地址码提供 B.可能有一个操作数,也可能有两个操作数 C.一定有两个操作数,其中一个操作数是隐含的 D.指令的地址码字段存放的一定是操作码 4.运算型指令的寻址与转移型指令的寻址不同点在于( )。 A.前者取操作数.后者决定程序转移地址 B.后者取操作数,前者决定程序转移地址 C.前者是短指令,后者是长指令 D.前者是长指令,后者是短指令 5.程序控制类指令的功能是( )。 A.进行算术运算和逻辑运算B.进行主存与CPU之间的数据传送 C.进行CPU和I/O设备之间的数据传送D.改变程序执行的顺序 6.下列哪种指令不属于程序控制指令( )。 A.无条件转移指令B.条件转移指令 C.中断隐指令D.循环指令 7.下列哪种指令用户不准使用( )。 A.循环指令B.转换指令 C.特权指令D.条件转移指令 8.零地址的运算类指令存指令格式中不给出操作数的地址,参加的两个操作数来自( )。A.累加器和寄存器B.累加器和暂存器 C.堆栈的栈顶和次栈顶单元D.堆栈的栈顶单元和暂存器 注意:堆栈指令的访问次数,取决于采用的是软堆栈还是硬堆栈。如果是软堆栈(堆栈区由内存实现),对于双目运算,需要访问4次内存:取指、取源数1、取源数2、存结果;如果是硬堆栈(堆栈区由寄存器实现),则只需在取指令时访问一次内存。 9.以下叙述错误的是( )。 A.为了充分利用存储空问,指令的K度通常为字节的整数倍 B.单地址指令是固定长度的指令 C.单字长指令可加快取指令的速度 D.单地址指令可能有一个操作数,也可能有两个操作数 10.单地址指令中为了完成两个数的算术运算,除地址码指明一个操作数外,另一个数采用( )方式。 A.立即寻址B.隐含寻址 C.间接寻址D.基址寻址

第四章 指令系统

第四章 指令系统 一、本章主要内容 内 容 要 求 指令格式(含定长操作码指令格式和扩展操作码指令格 式) ***** 寻址方式(数据寻址和指令寻址,常见寻址方式的特点 和表示方法) ***** CISC 和RISC 的基本概念 * 二、知识结构 三、具体内容介绍 (一) 指令格式 1. 指令的基本格式:机器内部的指令格式由两大字段组成,操作码和操作数; ● 操作码规定本条指令所要进行的操作或完成的功能; ● 操作数字段给出本条指令操作的数据对象以及下一条将要执行的指令的地址,操作数字段有可能包含寻 址方式字段。 ● 指令系统中各指令的长度可以相同,也可以不同,一般取机器字长的倍数。 2. 定长操作码指令格式:所有指令的操作码位数相同。 重点掌握内容:操作码位数和指令总统所含指令条数的关系。n 位操作码,指令系统最多2n 条指令;反之,指令系统有n 条指令,至少log 2n 位操作码。 寻址方式 存储器寻址 定长操作码 不定长操作码 操作码 指 令 格 式 操作数 操作数的个数 立即数寻址 直接寻址 间接寻址 寄存器间接寻址 变址寻址 寄存器寻址 系统寻址 基址寻址 操作码 寻址1 数1 …… 寻址I 数i …… 寻址n 数n

3. 扩展操作码指令格式 在高级语言中,各语句的使用频率相差较大,比如C语言中,goto语句是限制使用的,一般程序不会使用goto语句,而几乎所有的程序都需要多次使用赋值语句。同样,指令系统中各条指令的使用频率也不一定相同,定长操作码指令给所有指令分配相同位数的操作码,使得极少使用的指令和经常使用的指令具有相同位数的操作码,对操作码的译码效率会产生影响。扩展操作码指令格式将根据指令的使用频率不同,分配不同位数的操作码,以提高指令系统的整体译码速度。比如使用频率高的指令操作码位数较短,使用频率低的指令操作码位数长一些。 二指令的寻址方式 指令的寻址方式指确定本条指令中所有操作数的地址以及下一条将要执行的指令的地址的方法。 1. 形式地址和有效地址 通常,指令中的操作数的位置有:指令中、内存中、CPU的寄存器中或者I/O接口中,所以指令中的操作数字段提供的值称为形式地址,把按照约定的寻址方式计算得到的地址称为有效地址。 2. 数据寻址及常见寻址方式 数据寻址:确定本条指令中所有操作数的地址,即寻找指令将要操作的数据的方法,常见数据寻址方式如下所示: 立即数寻址:指令的操作数字段给出的是操作数本身(操作数在指令中)。这是最简单最直接的寻址方式,执行指令时,数据随指令由内存读入CPU。 优点:简单、明确、速度快 缺点:由于操作数字段的位数是有限的,所以立即数表示数的范围也是有限的。比如每个操作数占6位,则无符号数的表数范围是0--63,有符号数的表数范围是-32---+31。 所以立即数寻址方式只适合操作数较小的情况,大一些的操作数无法应用。 直接寻址:操作数在内存,指令的操作数字段给出的是操作数的内存地址。执行指令时,指令由内存读入CPU后,再按照直接寻址字段给出操作数的内存地址读一次内存,即可将数据从内存 读入CPU。 优点:由于操作数在内存,操作数所占的内存单元数由数据的类型决定,所以数据的范围可以较大。比如操作数字段占6位,对应数据为16位,则无符号数的表数范围是 0--65535,有符号数的表数范围是-32768---+32767。 缺点:由于操作数字段的位数是有限的,所以操作数可存放的内存地址的范围也是有限的。 比如每个操作数占6位,操作数只可在0-63内存单元存放。所以直接寻址中操作数 的存放位置有限,可定义的操作数的个数就受限。 间接寻址:操作数在内存,指令的操作数字段给出的是操作数的内存地址所存放的内存单元地址,即操作数字段给出的是操作数的地址的地址。执行指令时,指令由内存读入CPU后,再按照 间接寻址字段给出操作数的内存地址的内存地址读一次内存,可得到操作数的内存地址, 按照这个地址再读一次内存,即将数据从内存读入CPU。 优点:由于操作数在内存,操作数所占的内存单元数由数据的类型决定,所以数据的内存地址以及范围可以较大。比如操作数字段占6位,内存单元均以16位为单位读写, 则对应操作数的内存地址占16位,则操作数的可存放地址范围是0—65535;对应

相关文档
相关文档 最新文档