第四章 指令系统

第四章 指令系统
第四章 指令系统

第四章 指令系统

一、本章主要内容 内 容

要 求 指令格式(含定长操作码指令格式和扩展操作码指令格

式)

***** 寻址方式(数据寻址和指令寻址,常见寻址方式的特点

和表示方法)

***** 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;对应

操作数占16位,则无符号数的表数范围是0--65535,有符号数的表数范围是

-32768---+32767。

缺点:首先由于操作数字段的位数是有限的,所以操作数的地址可存放的内存地址的范围也是有限的。比如每个操作数占6位,操作数的地址只可在0-63内存单元存放。

其次读写操作数需要两次读写内存,速度较慢。

寄存器寻址:操作数在CPU内的寄存器中,指令的操作数字段给出的是相应寄存器的编号。执行指令时,指令由内存读入CPU后,可直接按照寄存器编号读寄存器,读出内容即为本条指令需

要的操作数。

优点:由于操作数在CPU中,取数速度较快。

由于CPU中寄存器的数量是有限的,所以需要的寄存器编号也较短,可以有效减少

操作数字段的位数。

缺点:由于CPU中寄存器的数量是有限的,所以同时进行寄存器寻址的操作数个数是有限的,一旦超出,只能通过其他方式使用,比如将暂时不用的寄存器内容入栈保存,

需要时再出栈使用。

寄存器间接寻址:操作数在内存,操作数的内存地址在CPU内的寄存器中,指令的操作数字段给出的是相应寄存器的编号。执行指令时,指令由内存读入CPU后,可直接按照寄存器编号读寄

存器,读出内容即为本条指令所需要的操作数的内存地址;再按照读出的内存地址读内存,

即可读出本条指令所需要的操作数。

优点:由于操作数的地址在CPU中,获得操作数内存地址的速度较快。

由于CPU中寄存器的数量是有限的,所以需要的寄存器编号也较短,可以有效减少

操作数字段的位数。

缺点:由于CPU中寄存器的数量是有限的,所以同时进行寄存器间接寻址的操作数个数是有限的,一旦超出,只能通过其他方式使用,比如将暂时不用的寄存器内容入栈保

存,需要时再出栈使用;由于读操作数需要访问内存一次,速度较寄存器寻址较慢。

变址寻址:操作数在内存,操作数的内存地址由CPU内的变址寄存器的内容和指令中给出的偏移量求和得到。执行指令时,指令由内存读入CPU后,可直接按照变址寄存器编号读寄存器,读

出内容和指令中的偏移量求和即为本条指令所需要的操作数的内存地址;再按照计算出的

内存地址读内存,即可读出本条指令所需要的操作数。

优点:一般将数组首地址放入指令的操作数字段,变址寄存器用来提供下标,在循环体中顺序修改变址寄存器的值,可实现数组功能。

缺点:由于操作数地址需要计算得到,速度较慢。

特点:读写一次内存可完成操作。

3. 指令寻址及常见寻址方式

相对寻址:下一条将要执行的指令所在的内存地址由CPU内的PC寄存器的内容(直接用或加1后使用)和指令中给出的偏移量求和得到,注意偏移量为有符号数,补码表示。

特点:可实现循环和选择结构。

4. 其他常见寻址方式

基址寻址:操作数或指令的内存地址由CPU内的基址寄存器的内容左移n位(乘2n)和指令中给出的偏移量求和得到。比如8086/8088中,四个段寄存器CS、DS、SS和ES均为基址寄

存器,所有指令地址由(CS)*16+(PC)得到;所有数据段的地址由(DS)*16+指令中给

出的偏移量得到;所有附加段的地址由(ES)*16+指令中给出的偏移量得到;所有堆

栈段的地址由(SS)*16+(SP)或(SS)*16+(BP)得到。

特点:一般用来扩大寻址空间。

4.操作数的个数

指令中的操作数个数一般有0-3个,多于三个的操作数可以转换为四类中的一类。

零操作数指令:指令中无操作数字段。可能指令不需要操作数,比如停机指令hlt,也可能指令中的操作数隐含在特殊寄存器、堆栈或累加器中。

一地址指令:指令中包含一个操作数字段。可能指令只需要一个操作数,也可能其他操作数隐含在特殊寄存器、堆栈或累加器中。

二地址指令:指令中包含两个操作数字段,一般其中的一个操作数兼作目的操作数。

三地址指令:指令中包含三个操作数字段,其中两个源操作数,一个目的操作数。

三CISC和RISC的基本概念

只需了解基本概念和特点即可。

CISC:复杂指令集计算机。指令系统包含的指令条数较多,优点是编程方便,程序效率较高;缺点是指令条数较多导致系统复杂程度较高。

RISC:精简指令集计算机。根据指令的使用频率,给使用频率较高的20%指令分配较短的操作码,使用较快的寻址方式;其他80%指令用较长操作码或直接用子程序实现。指令系统指令条数较少,

一般嵌入式的处理器使用RISC,比如ARM处理器。

例题

例1(2001年上海大学攻读硕士学位研究生入学考试试题,10分;武汉理工大学2004年攻读硕士学位研究生入学考试试题,10分;2004年武汉理工大学攻读硕士学位研究生入学考试试题,10分):假设某计算机指令长度为20位,具有双操作数、单操作数、无操作数三类指令格式,规定每个操作数占6位,现已设计出m 条双操作数指令,n条无操作数指令,求这台计算机最多可设计出多少条单操作数指令?若操作码位数固定呢?

解:本题为典型的扩展操作码指令格式,由题意,该指令系统的指令格式如下:

操作码操作数1(6位)操作数2(6位)

由于规定每个操作数占6位,所以双操作数指令的操作码有20-6-6=8位;单操作数指令可以将操作码的位数扩充至操作数1,操作码有8+6=14位;无操作数指令可以将操作码的位数扩充至操作数2,操作码有14+6=20位。

所以,双操作数指令最多可有28=256条,已知现已设计出m条双操作数指令,可剩余256-m个8位编码用于扩充单操作数指令。

单操作数指令最多有(256-m)*26条,设最终指令系统有x条单操作数指令,可剩余(256-m)*26-x个14位编码用于扩充无操作数指令。

无操作数指令最多有((256-m)*26-x)*26条,已知现已设计出n条无操作数指令,所以n<=((256-m)*26-x)*26,解不等式求出x即可。

n<=((256-m)*64-x)*64

n/64<=(256-m)*64-x

x<=(256-m)*64- n/64

这台计算机最多可设计出(256-m)*64- n/64条单操作数指令。

(1)本题如果将条件改为操作码位数固定,则最多可设计256-m-n条单操作数指令。

例2、(2003年武汉理工大学攻读硕士学位研究生入学考试试题,10分)某机存储器及CPU的字长均为16位,CPU有16个16位的通用寄存器。请为该机设计能满足下列条件的指令格式,并加以说明。

1、允许有不超过210种的操作指令

2、主存储器空间不少于16MB

3、至少有5种寻址方式

4、只有单字长指令和双字长指令可供选择

解:允许有不超过210种的操作指令---〉由于7

主存储器空间不少于16MB---〉主存字节地址至少log216M=24位

至少有5种寻址方式---〉由于2

16个通用寄存器,寄存器编号占log216=4位

单字长指令即指令长度为16位,其中操作码必须占8位,一个操作数的寻址方式占3位,仅剩5位用于操作数。立即数寻址方式、寄存器寻址方式和寄存器间接寻址方式用5位可以直接表达,其他涉及内存的寻址方式需要24(字节寻址)/23(字寻址)位地址,指令的操作数字段只能提供5位,需要借助特殊寄存器提供高19/18位地址,但寄存器只有16位,可以将寄存器内容左移8位的方法构造出24位地址,再和指令提供的5位偏移地址求和,以得到操作数所需的24位有效地址。所以单字长指令格式为操作码8位,寻址方式3位,操作数5位。

双字长指令即指令长度为32位,其中操作码必须占8位,剩余24位。

双字长单操作数指令格式,24位中的3位为寻址方式,剩余21位用于操作数。立即数寻址方式和寄存器相关的寻址方式用5位可以直接表达,其他涉及内存的寻址方式需要24位地址,指令的操作数字段只能提供21位,可以将寄存器内容左移8位的方法构造出24位地址,再和指令提供的21位偏移地址求和,以得到操作数所需的24位有效地址。所以双字长单操作数指令格式为操作码8位,寻址方式3位,操作数21位。

双字长双操作数指令格式,每个操作数占12位,其中的3位为寻址方式,剩余9位用于操作数。立即数寻址方式和寄存器寻址方式用5位可以直接表达,其他涉及内存的寻址方式需要24位地址,指令的操作数字段只能提供9位,可以将寄存器内容左移8位的方法构造出24位地址,再和指令提供的9位偏移地址求和,以得到操作数所需的24位有效地址。所以双字长双操作数指令格式为操作码8位,操作数1寻址方式3位,操作数1占9位,操作数2寻址方式3位,操作数2占9位。

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. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。 采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。

2.9如果GDT寄存器值为0013000000FFH,装人LDTR的选择符为0040H,试问装人描述符高速缓存的LDT描述符的起始地址是多少? 解:GDT寄存器的高32位和低16位分别为GDT的基址和段限,所以:GDT的基址=00130000H LDTR选择符的高13位D15~D3=000000001000B是该LDT描述符在GDT中的序号,所以: LDT描述符的起始地址= GDT的基址 十LDT描述符相对于GDT基址的偏移值 =00130000H+8×8=00130040H 2.10假定80486工作在实模式下,(DS)=1000H, (SS)=2000H, ( SI ) = El07FH, ( BX )=0040H, (BP) = 0016H,变量TABLE的偏移地址为0100H。请间下列指令的源操作数字段是什么寻址方式?它的有效地址(EA)和物理地址(PA)分别是多少? (1)MOV AX,[1234H ] (2) MOV AX, TABLE (3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BPI[SI] 解:(1)直接寻址,EA=1234H , PA =(DS)×16+EA=11234H。 (2)直接寻址,EA= O100H,PA= (DS)×16+EA=10100H。 (3)基址寻址,EA=( EBX)+100H =0140H,PA= (DS) × 16+EA=10140H。 (4)带位移的荃址加变址寻址。(EA)= (BP)+[SI]十TABLE的偏移地址=0195H PA=(SS)×16+EA=20195H} 2.11下列指令的源操作数字段是什么寻址方式? (1)MOV EAX , EBX (2)MOV EAX,[ ECX] [EBX ] (3) MOV EAX,[ESI][EDX * 2] (4)MOV EAx,[ ESI*8] 解:(1)寄存器寻址。 (2)基址加变址寻址。 (3)基址加比例变址寻址。 (4)比例变址寻址。 2.12分别指出下列指令中源操作和目的操作数的寻址方式。 式表示出EA和PA。 (1)MOV SI,2100H (2)MOV CX, DISP[BX] (3) MOV [SI] ,AX (4)ADC AX,[BX][SI] (5)AND AX,DX (6) MOV AX,[BX+10H] (7) MOV AX,ES:[BX] (8) MOV Ax, [BX+SI+20H] (9) MOV [BP ].CX (10) PUSH DS 解:(1) 源操作数是立即数寻址;目的操作数是寄存器寻址。 (2)源操作数是基址寻址,EA=(BX)+DISP,PA=(DS)×16+(BX)+DISP 目的操作数是寄存器寻址。 (3)源操作数是寄存器寻址; 目的操作数是寄存器间接寻址,EA=(SI).PA=(DS) × 16十(SI)。 (4)操作数是基址加变址寻址,EA= (BX)+(SI).PA= (DS) × 16十(BX)+(SI) 目的操作数是寄存器寻址。 (5)源操作数和目的操作数均为寄存器寻址。 (6)源操作数是基址寻址,EA=(BX)+10H.PA= (DS) × 16十(BX)+10H 目的操作数是寄存器寻址。 (7)源操作数是寄存器间接寻.EA= (Bx).PA= (ES) × 16+(BX)

计算机系统结构第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。 (2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设

计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法D.ROM查表法 3. 数据表示指的是( C )。A.应用中要用到的数据元素之间的结构关系

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.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 .指令格式结构如下所示,试分析指令格式及寻址方式特点。

第二章微型计算机指令系统 题2-1 试分别说明以下各指令的源操作数属于何种寻址方式。 答:1、MOV AX ,[BP] ——寄存器间接寻址 2、MOV DS ,AX ——寄存器寻址 3、MOV DI ,0FF00H ——立即数寻址 4、MOV BX ,[2100H] ——直接寻址 5、MOV CX ,[SI+5] ——变址寻址 6、MOV AX ,TABLE[BP][DI] ——基址加变址寻址 7、MOV DX ,COUNT[BX] ——基址寻址 题2-2 已知有关寄存器中的内容为,(DS)=0F100H ,(SS)=0A100H ,(SI)=1000H,(DI)=2000H ,(BX)=3000H ,(BP)=4000H 。偏移量TABLE=0AH ,COUNT=0BH 。说明题2-1中第1小题和第4~7小题指令源操作数的物理地址。 答:1、物理地址=SS×16+SP=0A1000H+4000H=A5000H 4、物理地址=DS×16+2100H=F3100H 5、物理地址=DS×16+SI+5H=F1000H+1000H+5H=F2005H 6、EA=BP+DI+TABLE=600AH 物理地址=SS×16+EA=A1000H+600AH=A700AH 7、EA=BX+COUNT=300BH 物理地址=DS×16+EA=F1000H+300BH=F400BH 题2-3 某一个存储单元的段地址为ABCDH,偏移地址为ABCDH,试说明其物理地址是什么;而另一个存储单元的物理地址为F1000H,偏移地址为FFF0H,试说明其段地址是什么。 答:ABCD0H+ABCDH=B689DH——物理地址 F1000H-FFF0H=E1010H ,所以段地址为:E101H。 题2-4 分别采用三种不同寻址方式的指令将偏移地址为5000H的存储单元的一个字传送到6000H单元,要求源操作数和目标操作数分别采用以下寻址方式: 1、直接寻址 2、寄存器间接寻址 3、变址寻址 答:1、 MOV AX,[5000H] MOV [6000H],AX 2、 MOV SI,5000H MOV DI,6000H MOV BX,[SI] MOV [DI],BX 3、 MOV AX,[SI+5000H] MOV [SI+6000H],AX 题2-5 说明以下8086/8088指令是否正确,如果不正确,简述理由。 1、MOV AL,SI

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.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.基址寻址

第2章指令系统及汇编语言程序设计2.1 8086(88)的寻址方式 2.1.1决定操作数地址的寻址方式 1. 立即寻址 2. 直接寻址 3. 寄存器寻址 4. 寄存器间接寻址 5. 寄存器相对寻址 6. 基址、变址寻址 7. 基址、变址、相对寻址 8. 隐含寻址 2.1.2决定转移地址的寻址方式 1. 段内转移 2. 段间转移 2.2 8086(88)的指令系统 2.2.1传送指令 1. MOVOPRD1,OPRD2 图2.1数据传送

微型计算机原理与接口技术(第2版) 2 2. 交换指令 3. 地址传送指令 4. 堆栈操作指令 图2.2堆栈操作 5. 字节、字转换指令 6. 标志寄存器传送指令 7. XLA T换码指令 2.2.2算术指令 图2.3加减运算操作数之间的关系 1. 加法指令 2. 减法指令 3. 乘法指令 4. 除法指令 5. 调整指令 2.2.3逻辑运算和移位指令 1. 逻辑运算指令 2. 移位指令

微型计算机原理与接口技术(第2版) 3 图2.4 SAL/SHL操作 图2.5 SAR操作 图2.6 SHR操作 3. 循环移位指令 图2.7循环移位指令 2.2.4串操作指令 1. MOVS/MOVSB/MOVSW 2. CMPS/CMPSB/CMPSW 3. SCAS/SCASB/SCASW 4. LODS/LODSB/LODSW 5. STOS/STOSB/STOSW 6. REP 7. REPE/REPNE 2.2.5程序控制指令 1. 无条件转移、子程序调用和返回指令 2. 条件转移指令

微型计算机原理与接口技术(第2版) 4 3. 循环控制指令 4. 软中断指令及中断返回指令 2.2.6处理器控制指令 1. 标志位操作指令 2. 外部同步指令

第四章 指令系统 一、本章主要内容 内 容 要 求 指令格式(含定长操作码指令格式和扩展操作码指令格 式) ***** 寻址方式(数据寻址和指令寻址,常见寻址方式的特点 和表示方法) ***** 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;对应

第二章 微型计算机指令系统
?IA-16微机系统结构-工作原理 8086/8088微处理器周期性地执行指令 时钟/T周期—指令周期—总线周期(内部操作/总线操作) 指令---微机算术、逻辑和控制功能的实现基础
重点:信息交换方法(数据流),程序流控制
*1、目标地址传送 目标地址传送 *寻址方式 2、标志传送 3、转移控制(转移指令、过程调用、中断) 转移控制(转移指令 过程调用 中断)
微机系统与接口
东南大学
1

RISC/CISC--两种指令体系计算机
? 精简指令计算机 (RISC R d d Instruction (RISC—Reduced I t ti Set S t Computer) C t ) SPARC, PowerPC, Alpha,ARM 指令简单,复杂功能 代码存储器利用率低 特点:指令种类很少,组合 特点 指令种类很少 组合 使用, 依赖:编译器 执行程序?指令序列 ? 复杂指令计算机 (CISC Comple Instruction (CISC—Complex Instr ction Set Computer) Comp ter) 变长编码,种类多,代码利用率低,可人工优化设计 例: 80X86/Pentium 变长字节 1-16字节,向下兼容, 8086指令向下兼容8080/8085指令,共 指令 共92种基本指令
微机系统与接口
东南大学
2

指令与指令系统
指令(Instructions) 指示CPU执行某种规定操作的命令 指令集或指令系统 (Instruction Set)
某一CPU所能执行的全部指令的集合 ?定义了程 某 序员能使硬件完成的基本操作(CPU基本性能)。
机器码(指令) 汇编语言/助记符(Mnemonic Symbol) F8H=CLC指令 05H 00H 10H B9H 25H 00H 01H C8H
微机系统与接口
F5H=CMC
F9H=STC
ADD AX,1000H MOV CX,0025H ADD AX AX, CX
指令 的 表示
东南大学
3

相关文档
最新文档