第四章 指令与寻址方式习题解答 (2)
楼第4章指令系统习题解答

楼第4章指令系统习题解答习题解答:1、什么叫寻址方式?8086/8088CPU 共有哪几种寻址方式?答:指令的寻址方式就是指获得操作数所在地址的方法。
8086/8088CPU指令的寻址方式可分为8种,为立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址、隐含寻址。
2、指出下列指令中源操作数和目的操作数的寻址方式(1)MOV AX,[SI] 源操作数:寄存器寻址目的操作数:寄存器间接寻址(2)MOV DI,100 源操作数:寄存器寻址目的操作数:立即寻址(3)MOV [BX],AL 源操作数:寄存器间接寻址目的操作数:寄存器寻址(4)MOV [BX+SI],CX源操作数:基址变址寻址目的操作数:寄存器寻址(5)ADD DX,106H[SI] 源操作数:寄存器寻址目的操作数:寄存器相对寻址3、判读以下指令的对错(1)STI 对(2)CALL 1000H 错(3)DIV AX,DL 错(4)SHL AL,4 错(5)POP AX 对(6)IN AL,[30H] 错(7)INC CS 错(8)OUT 40H,AL 对4、根据已知条件,计算划线部分的物理地址。
已知:SS=1000H,ES=2000H,DS=3000H,CS=4000H,BX=5000H,DI=1200H,BP=2300H(1)MOV AX,[2300H] 计算公式:DS×16+2300H(2)MOV [BX][DI],AX 计算公式:DS×16+BX+DI(3)ADD AX,ES:[2100H] 计算公式:ES×16+2100H(4)SUB DX,[BP+6] 计算公式:SS×16+BP+6(5)MOV AX,[DI] 计算公式:DS×16+DI5、设SP初值为2400H,AX=4000H,BX=3600H,则执行指令PUSH AX后,SP=?,再执行PUSH BX和POP AX后SP=?答:则执行指令PUSH AX后,SP=2400H-2=23FEH,再执行PUSH BX和POP AX后SP=23FEH。
计算机组成原理第四章课后题参考答案

第四章课后题参考答案3.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:指令格式及寻址方式特点如下:①单字长二地址指令;②操作码OP可指定=64条指令;③ RR型指令,两个操作数均在寄存器中,源和目标都是通用寄存器(可分别指定16个寄存器之一);④这种指令格式常用于算术逻辑类指令。
4.指令格式结构如下所示,试分析指令格式及寻址方式特点。
解:指令格式及寻址方式特点如下:①双字长二地址指令;②操作码OP可指定=64条指令;③ RS型指令,两个操作数一个在寄存器中(16个寄存器之一),另一个在存储器中(由变址寄存器和偏移量决定),变址寄存器可有16个。
6.一种单地址指令格式如下所示,其中I为间接特征,X为寻址模式,D为形式地址。
I,X,D组成该指令的操作数有效地址E。
设R为变址寄存器,R1 为基值寄存器,PC为程序计数器,请在下表中第一列位置填入适当的寻址方式名称。
解:①直接寻址②相对寻址③变址寻址④基址寻址⑤间接寻址⑥基址间址寻址12. 根据操作数所在位置,指出其寻址方式(填空):(1)操作数在寄存器中,为(A)寻址方式。
(2)操作数地址在寄存器,为(B)寻址方式。
(3)操作数在指令中,为(C)寻址方式。
(4)操作数地址(主存)在指令中,为(D)寻址方式(5)操作数的地址,为某一寄存器内容与位移量之和可以是(E,F,G)寻址方式。
解:A:寄存器直接(或寄存器);B:寄存器间接;C:立即;D:直接;E:相对;F:基址;G:变址补充一下,间接寻址可以表述为:操作数地址(主存)在内存中或者操作数地址的地址(主存)在指令中。
计算机组成原理第五版 白中英(详细)第4章习题参考答案

第4章习题参考答案1.ASCII码是7位,如果设计主存单元字长为32位,指令字长为12位,是否合理?为什么?答:不合理。
指令最好半字长或单字长,设16位比较合适。
一个字符的ASCII 是7位,如果设计主存单元字长为32位,则一个单元可以放四个字符,这也是可以的,只是在存取单个字符时,要多花些时间而已,不过,一条指令至少占一个单元,但只占一个单元的12位,而另20位就浪费了,这样看来就不合理,因为通常单字长指令很多,浪费也就很大了。
2.假设某计算机指令长度为32位,具有双操作数、单操作数、无操作数三类指令形式,指令系统共有70条指令,请设计满足要求的指令格式。
答:字长32位,指令系统共有70条指令,所以其操作码至少需要7位。
双操作数指令单操作数指令无操作数指令3.指令格式结构如下所示,试分析指令格式及寻址方式特点。
答:该指令格式及寻址方式特点如下:(1) 单字长二地址指令。
(2) 操作码字段OP可以指定26=64种操作。
(3) 源和目标都是通用寄存器(可分指向16个寄存器)所以是RR型指令,即两个操作数均在寄存器中。
(4) 这种指令结构常用于RR之间的数据传送及算术逻辑运算类指令。
4.指令格式结构如下所示,试分析指令格式及寻址方式特点。
15 10 9 8 7 4 3 0答:该指令格式及寻址方式特点如下:(1)双字长二地址指令,用于访问存储器。
(2)操作码字段OP可以指定26=64种操作。
(3)RS型指令,一个操作数在通用寄存器(选择16个之一),另一个操作数在主存中。
有效地址可通过变址寻址求得,即有效地址等于变址寄存器(选择16个之一)内容加上位移量。
5.指令格式结构如下所示,试分析指令格式及寻址方式特点。
答:该指令格式及寻址方式特点如下:(1)该指令为单字长双操作数指令,源操作数和目的操作数均由寻址方式和寄存器构成,寄存器均有8个,寻址方式均有8种。
根据寻址方式的不同,指令可以是RR型、RS型、也可以是SS型;(2)因为OP为4位,所以最多可以有16种操作。
单片机微型计算机原理及接口技术课后习题答案第4章

单片机微型计算机原理及接口技术课后习题答案第4章4-2 试述指令MOV A,R0和MOV A,@R0的区别两条指令的目的操作数相同,两条指令的区别在于源操作数来源不同:MOV A,R0 指令的源操作数就是R0寄存器的内容;而MOV A,@R0 指令的源操作数是位于存储器单元内,且存储器单元的地址是R0寄存器的内容。
4-3 试述指令MOV A,20H和MOV A,#20H的区别MOV A,20H 源操作数是直接寻址,20H表示源操作数所在存储器单元的地址。
MOV A,#20H 源操作数是立即数寻址,#20H是立即数,也就是源操作数。
4-4 说明一下指令中源操作数所在的存储器类型。
(1)MOV A,#30H; 立即数#30H,就是源操作数,存在于指令中,所以位于程序存储器。
(2)MOV A,30H; 30H是源操作数所在数据存储单元的地址,所以源操作数位于数据存储器。
(3)MOVC A,@A+DPTR;源操作数是变址寻址, 助记符MOVC表示源操作数位于程序存储器。
(4)MOVX A,@DPTR; 源操作数是寄存器间接寻址, 助记符MOVX表示源操作数位于外部数据存储器。
4-5 判断下列指令书写是否正确:(1)MOV A,B; ✔(2)MOV A,#3000H ; ✘,因为A是8位寄存器,而#3000H是16位数值,没法全部存到A里(3)INC,#20H ; ✘只能INC A/direct/Rn/@Ri/DPTR(4)MOV 5,A ; ✔,注意目的操作数是直接寻址方式,不是立即寻址(5)MOV 30H,40H; ✔(6)MOV B,@DPTR ; ✘,@DPTR寻址用于MOVX指令,不能用于MOV指R(7)CJNE 30H,#80H,NEXT ; ✘,CJNE指令格式只能是CJNE A/Rn/@Ri,#data,rel或CJNE A,direct,rel(8)POP A ; ✘只能是直接寻址方式POP direct,正确的是POP ACC(9)PUSH ACC; ✔(10)SJMP 2000H ; ✘rel的范围是-128~127(用补码表示其值)共256B范围4-6 设ACC=12H,B=64H,SP=60H,30H中存放的是78H,试分析下列程序执行后,ACC、B、30H、SP中的内容分别为多少,并画出堆栈示意图。
《计算机原理学习指导》第四章指令系统综合练习题参考答案

《计算机原理学习指导》第四章指令系统综合练习题参考答案一、填空题1 、一个完善的指令系统应满足以下4个方面的要求,它们是:完备性、有效性、规整性和兼容性。
2、一条完整的指令是由操作码和地址码(操作数)两部分信息组成的。
3 、指令中的地址码字段包括源操作数的地址和操作结果数的地址(目的操作数的地址),前者用语指明操作数的存放处,后者用语存放运算的结果。
4 、指令格式按地址码部分的地址个数可以分为零地址指令格式、一地址指令格式、二地址指令格式和三地址指令格式。
5、常见的操作码方法有定长操作码和扩展操作码。
6、逻辑运算指令包括逻辑乘(与)、逻辑加(或)、逻辑非(求反)和异或(按位加)等操作。
二、单项选择题1、直接、间接、立即这 3 种寻址方式指令的执行速度有快到慢的排序是( C )A .直接、立即、间接B.直接、间接、立即C .立即、直接、间接D.立即、间接、直接2、指令系统中采用不同寻址方式的目的是(B)A .实现存储程序和程序控制B.缩短指令长度,扩大寻址空间,提高编程灵活性C .可以直接访问外存D.提高扩展操作码的可能并降低指令译码难度3、一地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个数常采用( C )A .堆栈寻址方式B.立即寻址方式C.隐含寻址方式 D .间接寻址方式4、对某个寄存器中操作数的寻址方式称为(C)寻址方式A .直接B .间接C .寄存器直接D.寄存器间接5、寄存器间接寻址方式中,操作数在(B)A .通用寄存器 B.主存单元C.程序计数器 D .外存6、变址寻址方式中,操作数的有效地址等于( C )A .基址寄存器内容加上偏移量B.堆栈指示器内容加上偏移量C .变址寄存器内容加上偏移量D.程序计数器内容加上偏移量7、扩展操作码是(D)A .操作码字段中用来进行指令分类的代码B.指令格式中不同字段设置的操作码C.操作码字段外用来操作字段的代码D.一种指令优化技术,即让操作码的长度随地址数的变化而变化8 A 、下面关于汇编语言的叙述中,不恰当的是( D ).对程序员的训练要求来说,需要硬件知识B.汇编语言对机器的依赖性强C.用汇编语言编写程序的难度比高级语言大D.用汇编语言编写的程序执行速度比高级语言慢9 A 、能够改变程序执行顺序的是( D ).数据传送类指令B.移位操作类指令 C .输入 /输出类指令 D .条件 /无条件转移类指令10 、以下的( D )不能支持数值处理A .算术运算类指令B.移位操作类指令C.字符串处理类指令D.输入/ 输出类指令三、名词解释题1 、指令:计算机能够识别和执行的操作命令2 、指令系统:一台计算机或一个计算机系统能够执行的各种指令的集合3 、指令字:一条完整的指令称为一个指令字4 、操作码:表示操作的性质及功能5 、地址码:表示指令的操作对象,指出操作数的地址6 、指令字长:等于地址码长度加上操作码长度7、定长操作码:让操作码的长度固定且集中放在指令字的一个字段中8、扩展操作码:操作码的长度可变且分散地放在不同的字段中9、寻址方式:指确定本条指令的地址及下一条要执行的指令地址的方法10、汇编语言:一种面向机器的程序设计语言,用助记符形式表示,属于低级程序设计语言11、机器语言:一种能被机器识别和执行的语言,用二进制数“0”和“1”形式表示12、 RISC :精简指令系统计算机13: CISC :复杂指令系统计算机,指具有大量指令的计算机系统四、简答题1、计算机指令中一般包含哪些字段?分别是什么含义?答:计算机指令中一般包含地址码和操作码两部分,地址码表示指令的操作对象,指出操作数的地址,操作码表示操作的性能及功能。
寻址方式及指令系统习题与解答

寻址方式及指令系统习题与解答寻址方式及指令系统习题与解答计算机科学与工程学院黄洪波2012年3月一、单项选择题1.设BX=2000H,SI=3000H,指令MOV AX,[BX+SI+8]的源操作有效地址为()。
A.5000H B.5008H C.23008H D.32008H2.设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理址为()。
A.13000H B.23000H C.33000H D.3000H3.设DS=2000H,ES=3000H,SI=200H,指令MOV ES:[SI],AL的目的操作数的物理地址为()。
A.20200H B.30200H C.50200H D.200H4.指令MOV MEM[BX],AX中的MEM是()。
A.原码B.反码C.补码D.移码5.用来作为寄存器间接寻址的寄存器有()个。
A.8 B.6 C.5 D.46.指令MOV [BX+SI],AL中的目的操作数使用()段寄存器。
A.CS B.DS C.SS D.ES7.指令MOV BX,[BP+5]中的源操作数使用()段寄存器。
A.CS B.DS C.SS D.ES8.段内间接寻址只改变()中的内容。
A.CS B.IP C.CS和IP D.PSW9.段间间接寻址只改变()中的内容。
A.CS B.IP C.CS和IP D.PSW10.下述指令中不改变PSW的指令是()。
A.MOV AX,BX B.AND AL,0FHC.SHR BX,CL D.ADD AL,BL11.下述指令中不影响CF的指令是()。
A.SHL AL,1 B.INC CXC.ADD [BX],AL D.SUB AX,BX12.两个整数补码9CH和7AH相加运算后,会产生()。
A.无溢出且无进位B.无溢出但有进位C.有溢出且有进位D.有溢出但无进位13.指令JMP WORD PTR [BX]属于()寻址。
计算机组成原理第4章 课后题解

9. 16个通用寄存器占4位,64种操作占6位,剩 下22位用于存储器地址,
OP(6) R(4) D(22)
• 采用R为基址寄存器寻址,地址=(R)+D
• 当基址最大,D也是最大的时候,寻址能力最大
• 而寄存器是32位的, • 故最大存储空间是232+222 = 4G+4M。
11. C 12. A 寄存器 B 寄存器间接 C 立即 D 直接 E 相对、基址、变址
7. 40条指令需占6位,26=64,剩余24条可作为扩充 • 4种寻址方式需占2位 • 剩余24位作为地址,可用低16位对64K字的 • • X = 00 X = 01 X = 10 X = 11 直接寻址方式 立即寻址方式 变址寻址方式 相对寻址方式
第四章 课后题解
1.主存单元字长32位,指令字长宜为半字长、单字长 或双字长。即16、32、64位。所以12位不合理。 4. 双字长二地址指令,RS型。 操作码字段可指定64种操作。 一个操作数在通用寄存器(共16个),寄存器寻 址。 另一个操作数在主存中,变址寻址。有效地址等 于变址寄存器(共16个)内容加上位移量。 6. (1) 直接寻址 (2) 相对寻址 (3) 变址寻址 (4) 基址寻址 (5) 间接寻址
西工大DSP第4章习题答案

习题与程序题一、填空:1.寻址方式是指寻找指令中(操作数地址)的方式。
TMS320LF2000汇编指令采用3种存储器寻址方式:(立即寻址方式)、(直接寻址方式)、(间接寻址方式)。
2.立即寻址方式分两种类型:(短立即寻址方式)和(长立即寻址方式)。
3.直接寻址方式的寻址对象是64K字的数据存储器,具体操作是将64K字的数据存储器分为(512)个数据页,每个数据页中包括(128字)单元。
4.间接寻址方式的寻址对象是64K字的数据存储器。
它是利用CPU内部8个16位的(辅助寄存器)(AR0~AR7)中任意一个辅助寄存器Rn的内容作为一个16位地址,来访问64K数据存储器中的任意单元。
5.汇编语言程序的语句除汇编指令以外,还可以由(伪指令)和(宏指令)组成。
6.一条源语句包含有4个有序的域,依次为:(标号域),(助记符域),(操作数域)和(注释域)。
7.一个完整的汇编文件应包含:(汇编源程序文件)、(头文件)、(命令文件)。
二、完成下列指令及注释:1. ⑴LDP #6 ;设置数据页为6(0300h~037Fh)ADD 5h,2 ;将0305h单元的内容左移2位;累加器,结果存入累加器指令执行前指令执行后dma:305h dma:305hC C⑵ADD *+,AR0 ;当前辅助寄存器AR4所指定的;器单元的内容加至累加器;当前辅助寄存器的内容加1;AR0设定为下一个辅助寄存器指令执行前指令执行后ARP ARPAR4 AR4dma:302h dma:302hC C2. 设OVM=0,ADDC *+,AR3 ;累加器结果正常;当前辅助寄存器AR0指定的数据存储单元15h;的内容与ACC和C的内容相加,结果存入CC;AR0的内容加1,指定AR3为下次辅助寄存器指令执行前指令执行后ARP ARPAR0 AR0dma:315h dma:315hC COV OV3. AND *- ;当前辅助寄存器AR2指定的数;的内容与ACC的低位字逻辑“;的低位字,ACC的高位字清零;AR1的内容减1指令执行前指令执行后ARP ARPAR1 AR1dma:315h dma:315hC C4. CALL 300h,*-,AR1 ;PC+2→TOS.程序存储器地址;入程序计数器(PC),并从该地;当前辅助寄存器的内容减1.;一个辅助寄存器指令执行前指令执行后5. CMPR 1 ;(当前AR)<(AR0)?,1表示指令执行前指令执行后6. LDP #0 ;(DP=0)LACL 60h ;60h单元的内;累加器的高16位填0指令执行前指令执行后dma:60h dma:60hACCC C7. LAR AR2,*+ ;将当前辅助寄存器所指的数据存;;容增1指令执行前指令执行后8. LST #1,0h ;(DP=4),ARB被装入新的A指令执行前指令执行后9.⑴NEG ;(OVM=1)OVM=1)累加器求负指令执行前指令执行后ACCC COV OV⑵NEG ;(OVM=0)指令执行前指令执行后ACCC COV OV10. POP ;PC增1.(TOS)→ACC(15:0);堆栈弹出一级指令执行前指令执行后C C堆栈11. PUSH ;PC;推一级.ACC(15:0)→TOS指令执行前指令执行后C C堆栈堆栈12.LDP #6SACL 29h,2 ;PC增1.(ACC)左移2位送入数据;存储单元329h处指令执行前指令执行后ACC ACCC C329h 329h13. SAR AR1,*- ;将AR1的内容存入当前辅;定的存储单元205h指令执行前指令执行后14. SBRK #8Eh ;当前辅助寄存器的值减去靠右对齐;正整数(无符号算术运算)指令执行前指令执行后15. SPLK #ABCDh,*+,AR1 ;将16位立即数ABCDh写入当前;所指定的数据存储单元320h.;当前辅助寄存器的内容增1;AR1被指定为下一个辅助寄存器指令执行前 指令执行后16. SUB *-,1,AR5 ;ACC 的内容减去当前辅助寄存器A;指定的数据存储单元02FEh 的内容;1位后的值(移位时高位填零), ;结果存入ACC 。
微机原理 第四章答案

15、设(DS)=C000H,(C0010H)=0180H, (C0012H)=2000H,执行LDS SI,[10H]后, (SI)=?, (DS)=? (SI)=0180 H,(DS)=2000 H
REP STOSW 程序段的功能:
将起始地址为0404 H开始的80 H(128)个字单元清成0 或将起始地址为0404 H开始的100 H(256)个字节单元清成0
11
第4章 微型计算机原理作业情况
13、 设(BX)=6B30H,(BP)=0200H,(SI)=0046H, (SS)=2F00H,(2F246H)=4154H,试求执行 XCHG BX,[BP+SI]后, (BX)=?,(2F246H)=? (BX)=4154H (2F246H)=6B30H
6
第4章 微型计算机原理作业情况
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1) MOV AL,19H ;
ADD AL,61H ;(AL)=7AH
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
(2) MOV AL,19H ;
SUB AL,61
;(AL)=0DCH
OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1
(1) MOV CL,20H[BX][SI] ;(CL)=0F6 H
(2) MOV [BP][DI],CX
;(1E4F6 H)=5678 H
(3) LEA BX,20H[BX][SI] ;(BX)=0056 H
MOV AX,2[BX]
;(AX)=1E40 H
第4章习题解答

第4章 8086/8088指令系统和寻址方式习题答案1. (1) 无有效地址(2) EA=7267H (3) EA=8E18H (4) EA=637DH2. (1) 寄存器相对寻址(2) 立即数寻址(3) 直接寻址(4) 段内直接寻址、段间直接寻址(5) 寄存器相对寻址(6) 基址变址相对寻址3.4. 非法指令有:(1)、(3)、(5)、(6)、(8)、(10)5. (1) (AX)=3355H,(SP )=1FFEH(2) (AX)=3355H,(DX)=4466H,(SP )=1FFEH6. (BX)=4154H,[2F246H]=6F30H7. (DI)= 139E H8. (SI)= 0180 H,(DS)= 2000 H9. (1) (CL)=00F6H(2) [1E4F6H]=5678H(3) (BX)=0056H,(AX)=1E40H(4) (SI)=00F6H,((SI))=0024H(5) (CX)= 00F6H,(AX)=5678H,(09226H)=1234H10. (1) 将+53、-49乘以2,可用一下指令完成:MOV AL,56 ;(AL)= 00110101BSAL AL,1 ;(AL)= 01101010BMOV AL,-49 ;(AL)= 11001111BSAL AL,1 ;(AL)= 10011110B(2) 将+53、-49除以2,可用一下指令完成:MOV AL,56 ;(AL)= 00110101BSAR AL,1 ;(AL)= 00011010BMOV AL,-49 ;(AL)= 11001111BSAR AL,1 ;(AL)= 11100111B11. (1) (DX)=0006H (BX)=0004H(2) (SP)=FFFEH ((SP))=FFFFH(3) (CX)=0004H (BX)=0004H(4) (AX)=8094H (CF)=0(5) (AL)=87H(6) (AL)= CBH (CF)=0 (AL)= 31H(7) (SI)=0009H(8) (DI)=0009H(9) ((DI))=94H(10) (AX)=17C6H (DX)=0894H(11) (AH)= 84H (BL)=04H(12) (IP)=17C6H12. (1) (IP)=1256H (2) (IP)=3280H (3) (IP)=2450H13. 8086/8088可以通过控制转移指令或中断方法来更新CS和IP的值。
计算机组成原理习题 第四章

第四章一.填空题1.根据操作数所在位置,指出其寻址方式:操作数在寄存器中,称为寻址方式;操作数地址在寄存器中,称为寻址方式;操作数在指令中,称为寻址方式;操作数地址在指令中,为寻址方式。
操作数的地址,为某一个寄存器中的内容与位移之和,则可以是、和寻址方式。
2.设字长和指令长度均为24位,若指令系统可完成108种操作,且具有直接、间接(一次间址)、变址、基址、相对、立即等6种寻址方式,则在保证最大范围内直接寻址的前提下,指令字中操作码占位,寻址特征位占位,可直接寻址的范围是,一次间址的范围是。
3.指令字中的地址码字段(形式地址)有不同的含意,它是通过体现的,因为通过某种方式的变换,可以得出地址。
常用的指令地址格式有、、和四种。
4.立即寻址的指令其指令的地址字段指出的不是,而是。
5.寄存器直接寻址操作数在中,寄存器间接寻址操作数在中,所以执行指令的速度前者比后者。
6.设形式地址为X,则直接寻址方式中,操作数的有效地址为;间接寻址方式中,操作数的有效地址为;相对寻址中,操作数的有效地址为。
7.变址寻址和基址寻址的区别是:基址寻址中基址寄存器提供,指令的地址码字段提供。
而变址寻址中变址寄存器提供,指令的地址码字段提供。
8.指令寻址的基本方式有两种,一种是寻址方式,其指令地址由给出,另一种是寻址方式,其指令地址由给出。
9.不同机器的指令系统各不相同,一个较完善的指令系统应该包括、、、、、等类指令。
10.常见的数据传送类指令的功能可实现和之间或和之间的数据传送。
11.设指令字长等于存储字长,均为24位,某指令系统可完成108种操作,操作码擦汗高难度固定,且具有直接、间接(一次间址)、变址、基址、相对、立即等寻址方式,则在保证最大范围内直接寻址的前提下,指令字中操作码占位,寻址特征占位,可直接寻址的范围是,一次间址的范围是。
12.设计器指令系统可完成98种操作,指令字长为16位,操作码长度固定。
若该指令系统具有直接、间接、变址、基址、相对、立即等六种寻址方式,则在保证最大范围内直接寻址的前提下,其指令代码中操作码占位,寻址特征占位,形式地址码占位,一次间址的范围是。
计算机组成原理习题答案第四章.

1.指令长度和机器字长有什么关系?半字长指令、单字长指令、双字长指令分别表示什么意思?解:指令长度与机器字长没有固定的关系,指令长度可以等于机器字长,也可以大于或小于机器字长。
通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。
2.零地址指令的操作数来自哪里?一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。
解:双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。
双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。
例如,前述零地址和一地址的加法指令。
3.某机为定长指令字结构,指令长度16位;每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。
若双操作数指令已有K 种,无操作数指令已有L种,问单操作数指令最多可能有多少种?上述三类指令各自允许的最大指令条数是多少?解:X =(24-K×26-jL26k双操作数指令的最大指令数:24-1。
单操作数指令的最大指令数:15×2 6-1(假设双操作数指令仅1条,为无操作数指令留出1个扩展窗口。
无操作数指令的最大指令数:216-212-26。
其中212为表示某条二地址指令占用的编码数,26为表示某条单地址指令占用的编码数。
此时双操作数和单操作数指令各仅有1条。
4.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案,使该指令系统包含:4条三地址指令,8条二地址指令,180条单地址指令。
解:4条三地址指令000XXX YYY ZZZ…011XXX YYY ZZZ8条二地址指令100000XXX YYY…100111XXX YYY180条单地址指令…5.指令格式同上题,能否构成:三地址指令4条,单地址指令255条,零地址指令64条?为什么?解:三地址指令4条000XXX YYY ZZZ…011XXX YYY ZZZ单地址指令255条…只能再扩展出零地址指令8条,所以不能构成这样的指令系统。
第四章微机原理习题答案

第四章习题答案一、写出下列指令的源操作数和目的操作数的寻址方式。
1. MOV AL,AH ;寄存器寻址2. MOV AL,TABLE[SI];寄存器相对寻址3. MOV [SI][BP],CL ;基址变址寻址4. AND AL,0FH ;立即数寻址5. ROR AL,CL ;寄存器寻址6. JNL NEXT ;程序地址相对寻址7. MOV DI,12 ;立即数寻址8. MOV [DI+1],BYTE PTR 12 ;基址相对寻址9. JMP WORD PTR [BX];程序地址间接寻址10.LOOP AGAIN ;程序地址相对寻址二、问答题1. 8086系统中,当对SS和SP寄存器的值进行修改时,有什么特殊规定?这样做的原因是什么?答:凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行之后,又自动恢复对SS寄存器赋值前的中断开放情况。
这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。
2. 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,这是为什么?答: 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,是因为在执行乘法运算时,要想使无符号数相乘得到正确的结果,有符号数相乘时,就得不到正确的结果;要想使有符号数相乘得到正确的结果,无符号数相乘时,就得不到正确的结果。
3.设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX指令后,栈顶地址和栈顶2个字节的内容分别是什么?答: 当前栈顶的地址2010H*16+FE00H=2FF00H;执行PUSH BX指令后,堆栈地址指针SP 减2,则栈顶地址为2FEEDH;栈顶2个字节的内容为57H、34H。
三、编程练习1.串操作指令设计实现以下功能的程序段:首先将100H个数从2170H处搬到1000H处,然后,从中检索相等于AL中字符的单元,并将此单元值换成空格符。
白中英计算机组成原理第四章答案

第4章 指令系统
第一页,编辑于星期日:四点 四十三分。
3、指令格式结构如下所示,试分析指令格
单字长单地址指令
寻址方式 寻址特征X 有效地址E
直接寻址方式
00
E=D
立即寻址方式
01
D=Imm
剩余8位作为形式地址; 变址寻址方式
10
E=(R)+D
设计方案:
相对寻址方式
11
E=(PC)+D
方案1:专用变址寄存器;
方案2:通用寄存器作为变址寄存器;
第五页,编辑于星期日:四点 四十三分。
方案1:专用变址寄存器
6位
2位
OP 寻址特征
8位 形式地址
各操作数的寻址范围: 立即数寻址方式
指令中的立即数不能超过8位;
直接寻址方式
直接地址为8位,可直接寻址范围为28个单元;
变址寻址方式
E=(R)+D,其中变址寄存器R为16位; 由于主存容量64K字,可直接寻址整个主存空间;
相对寻址方式
E=(PC)+D,可直接寻址整个主存空间;
4位
形式地址D 18位
64种操作
操作码占6位;
16个通用寄存器一个操作数和基址寄存器各占4位;
单字长指令 形式地址占32 – 6 – 4 – 4 = 18位;
操作数S的地址E =(R1)+D,其中R1为32位的;
若系统的地址总线≤32位,则可寻址整个主存;
若系统的地址总线>32位,则可寻址的最大存储空间为232+218
指令与寻址方式习题

指令与寻址方式习题解答1.试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:(1)AND AX,0FFH(2)AND BL,[OFFH](3)MOV DS,AX(4)CMP [SI],CX(5)MOV DS:[0FFH],CL(6)SUB [BP][SI],AH(7)ADC AX,0ABH[BX](8)OR DX,-35[BX][DI](9)PUSH DS(10)CMC答:目的操作数源操作数(1)寄存器直接寻址立即数寻址(2)寄存器直接寻址直接寻址(3)寄存器直接寻址寄存器直接寻址(4)寄存器间接寻址寄存器直接寻址(5)直接寻址寄存器直接寻址(6)基址变址寻址寄存器直接寻址(7)寄存器直接寻址寄存器相对寻址(8)寄存器直接寻址基址变址相对寻址(9)无寄存器直接寻址(10)隐含寻址2.试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。
(1)MOV [BX][BP],AX(2)TEST [BP],BL(3)ADD SI,ABH(4)AND DH,DL(5)CMP CL,1234H(6)SHR [BX][DI],3(7)NOT CX,AX(8)LEA DS,35[SI](9)INC CX,1(10)P USH 45[DI]答:(1)应将BP,BX其中之一该为SI或DI(2)正确(3)ABH改为0ABH(4)(5)是字操作,CL改为CX(6)移位数大于1时,应用CL(7)NOT指令只有一个操作数(8)LEA指令的源操作数应为一内存单元地址(9)此指令不用指出1(10)45改为45H3.下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态?MOV DL,86ADD DL,0AAH答: 0101,0110 + 1010,1010 = 1,0000,0000CF=1 AF=1 ZF=1 SF=1 OF=14.在8086/8088CPU中可用于作地址指针的寄存器有哪些?答:有BX,CX,DX,BP,SI,DI (IP,SP,)5.已知(DS)=09lDH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。
第4章习题解答

第4章 习题讲解 章
为变址寄存器, R1为基址寄存器 PC为程序计数器 为基址寄存器, 【题4-6 】 R为变址寄存器, R1为基址寄存器,PC为程序计数器 OP I
寻址 方式 (1) ) (2) ) (3) ) (4) ) (5) ) (6) ) I 0 0 0 0 1 1 X 00 01 10 11 00 11
【题4-5】指令格式结构如下所示,试分析指令格式及 】指令格式结构如下所示, 寻址方式的特点 的特点。 寻址方式的特点。
15 12 11 9 8 6 5 3 2 0
OP
寻址方式
寄存器
寻址方式
寄存器
答: ① 所示指令是单字长二地址指令。 所示指令是单字长二地址指令 单字长二地址指令。
操作码字段OP有 可以指定2 16条指令 ② 操作码字段 有4位,可以指定24=16条指令。 可以是RR RS或SS型指令 RR、 型指令。 寻址方式有2 ③ 寻址方式有23=8种,可以是RR、RS或SS型指令。
第4章 典型例题 章
为操作码字段, 【例4.2】指令格式如下所示,OP为操作码字段,试分 】 指令格式如下所示, 为操作码字段 析指令格式特点。 析指令格式特点。
15 10 7 4 3 0
OP
——
源寄存器
变址寄存器
位移量 (16位) 位
答:
双字长二地址指令; ① 双字长二地址指令; 操作码字段OP OP为 可以指定2 64种操作 种操作; ② 操作码字段OP为6位,可以指定26=64种操作; 一个操作数在源寄存器( 16个 ③ 一个操作数在源寄存器(共16个)中,另一个操作数在内存储 器中(有效地址由变址寄存器和位移量决定) 所以是RS 指令。 RS型 器中 ( 有效地址由变址寄存器和位移量决定 ) , 所以是 RS 型 指令 。
微机原理第四章习题答案

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=61505H3.设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舍去。
微机原理与接口技术(科学出版社)第4章课后习题及答案

微机原理与接口技术第四章课后习题1.指令主要有哪些分类方式? 其主要类别是什么?答:操作数、级别、功能。
操作数:无操作数、单操作数、双操作数三操作数;级别:机器指令和汇编指令功能:传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;2.80X86的寻址方式有哪些?它们的具体含义是什么?答:操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口寻址方式(1)立即寻址方式:操作对象是这个操作数本身(2)寄存器寻地址:操作对象是寄存器中的内容(3)存储器寻址方式:操作对象是内存地址所对应的存储单元中的内容(4)端口寻址方式:操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象3. 指出下列各指令中源操作数和目的操作数的寻址方式:⑴MOV BX,WORD PTR[2200H] ⑵ AAA⑶JUM 2200H ⑷ LES DI,[2100H]⑸ MOV [BX+SI+8], BX ⑹ ADD AX,[BP+3000H]答:⑴MOV BX, WORD PTR[2200H] 源操作数:直接寻址;目的操作数:寄存器寻址⑵AAA 源操作数:寄存器寻址AL(也称隐含寻址);目的操作数:寄存器寻址⑶JUM 2200H 程序转移段内直接寻址方式⑷LES DI,[2100H] 源操作数:直接寻址;目的操作数:寄存器寻址⑸MOV [BX+SI+8], BX 源操作数:寄存器寻址;目的操作数:相对基址变址寻址⑹ADD AX,[BP+3000H] 源操作数:直接寻址;目的操作数:寄存器相对寻址4. 设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500 H,则:(1)10202H(2)40300H(3)21010H(4)42156H(5)31510H5.写出清除AX寄存器内容的方法并比较。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 假定(BX)=637DH,(SI)=2A9BH,位移量D=3237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址(2)直接寻址(3)使用BX的寄存器寻址(4)使用BX的间接寻址(5)使用BX的寄存器相对寻址(6)基址变址寻址(7)相对基址变址寻址答:(1)立即数寻址的有效地址是当前IP的内容;(2)直接寻址,若使用位移量D=3237H进行,则有效地址为3237H;(3)使用BX的寄存器寻址时,操作数在BX寄存器中,因此无有效地址;(4)使用BX的间接寻址时,有效地址在BX寄存器中,即有效地址=637DH;(5)使用BX的寄存器相对寻址的有效地址=(BX)+D=637DH+3237H=95B4H;(6)基址变址寻址的有效地址=(BX)+(SI)=637DH+2A9BH=8E18H;(7)相对基址变址寻址的有效地址=(BX)+(SI)+D=C050H;2. 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址答:(1)使用寄存器间接寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令为:MOV BX,BLOCKADD BX,12MOV DX,[BX](2)使用寄存器相对寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令为:MOV BX,BLOCKMOV DX,[BX+12](3)使用基址变址寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令为:MOV BX,BLOCKMOV SI,12MOV DX,[BX+SI]3. 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
(1)MOV AX,1200H(2)MOV AX,BX(3)MOV AX,[1200H](4)MOV AX,[BX](5)MOV AX,[BX+1100](6)MOV AX,[BX+SI](7)MOV AX,[BX+SI+1100]答:(1)指令MOV AX,1200H执行完后AX寄存器的内容为1200H;(2)指令MOV AX,BX执行完后AX寄存器的内容为0100H;(3)指令MOV AX,[1200H]是将从物理地址=(DS)*10H+1200H=21200H开始的两个单元内容送AX,执行完后AX寄存器的内容为4C2AH;(4)指令MOV AX,[BX]是将从物理地址=(DS)*10H+(BX)=20100H开始的两个单元内容送AX,故执行完后AX寄存器的内容为3412H;(5)指令MOV AX,[BX+1100]是将从物理地址=(DS)*10H+(BX)+1100H=21200H开始的两个单元内容送AX,故执行完后AX寄存器的内容为4C2AH;(6)指令MOV AX,[BX+SI]是将从物理地址=(DS)*10H+(BX)+(SI)=20102H开始的两个单元内容送AX,故执行完后AX寄存器的内容为7856H;(7)指令MOV AX,[BX+SI+1100]是将从物理地址=(DS)*10H+(BX)+(SI)+1100H=21202H开始的两个单元内容送AX,故执行完后AX寄存器的内容为65B7H;4.假设已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)= 0100H,(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(1)MOV AX,0ABH (2)MOV AX,BX(3)MOV AX,[100H] (4)MOV AX,VAL(5)MOV AX,[BX] (6)MOV AX,ES:[BX](7)MOV AX,[BP] (8)MOV AX,[SI](9)MOV AX,[BX+10] (10)MOV AX,VAL[BX](11)MOV AX,[BX][SI] (12)MOV AX,[BP][SI]答:(1)在指令MOV AX,0ABH 中,源操作数字段的寻址方式是立即数寻址,其物理地址值=(CS)*10H+(IP);(2)在指令MOV AX,BX 中,源操作数字段的寻址方式是寄存器寻址,操作数在BX中,无物理地址;(3)在指令MOV AX,[100H] 中,源操作数字段的寻址方式是直接寻址,其物理地址值=(DS)*10H+100=29000H+100H=29100;(4)在指令MOV AX,VAL 中,源操作数字段的寻址方式是直接寻址,其物理地址值=(DS)*10H+50H =29000H+50H=29050H;(5)在指令MOV AX,[BX] 中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(DS)*10H +(BX)=29000H+100H=29100H;(6)在指令MOV AX,ES:[BX] 中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(ES)*10H+(BX)=21000H+100H=21100H;(7)在指令MOV AX,[BP] 中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(SS)*10H +(BP)=15000H+10H=15010H;(8)在指令MOV AX,[SI] 中,源操作数字段的寻址方式是寄存器间接寻址,其物理地址值=(DS)*10H +(SI)=29000H+0A0H=290A0H;(9)在指令MOV AX,[BX+10] 中,源操作数字段的寻址方式是寄存器相对寻址,其物理地址值=(DS)*10H+(BX)+0AH= 29000H+100H+0AH =2910AH;(10)在指令MOV AX,VAL[BX] 中,源操作数字段的寻址方式是寄存器相对寻址,其物理地址值=(DS)*10H+(BX)+50H= 29000H+100H+50H= 29150H;(11)在指令MOV AX,[BX][SI] 中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=(DS)*10H+(BX)+(SI)=29000H+100H+0A0H =291A0H;(12)在指令MOV AX,[BP][SI] 中,源操作数字段的寻址方式是基址变址寻址,其物理地址值=(SS)*10H+(BP)+(SI)=15000H+10H+0A0H =150B0H5.分别指出下列指令中的源操作数和目的操作数的寻址方式。
(1)MOV SI,200(2)MOV CX,DATA[SI](3)ADD AX,[BX+DI](4)AND AX,BX(5)MOV [SI],AX(6)PUSHF答:(1)目的操作数字段的寻址方式是寄存器寻址,源操作数字段的寻址方式是立即数寻址;(2)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是寄存器相对寻址;(3)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是基址变址寻址;(4)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式也是寄存器寻址;(5)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器寻址;(6)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器寻址;6.试述指令MOV AX,2010H和MOV AX,DS:[2010H] 的区别。
答:指令MOV AX,2010H是将立即数2010H送AX寄存器,而指令MOV AX,DS:[2010H]是将DS段有效地址为2010H的两个单元的内容送AX。
7.写出以下指令中内存操作数的所在地址。
(1)MOV AL,[BX+5](2)MOV [BP+5],AX(3)INC BYTE PTR [SI+3](4)MOV DL,ES:[BX+DI](5)MOV BX,[BX+SI+2]答:(1)指令MOV AL,[BX+5]中内存操作数的所在地址=(DS)*10H+(BX)+5;(2)指令MOV [BP+5],AX中内存操作数的所在地址=(SS)*10H+(BP)+5和(SS)*10H+(BP)+6;(3)指令INC BYTE PTR[SI+3]中内存操作数的所在地址=(DS)+(SI)+3;(4)指令MOV DL,ES:[BX+DI]中内存操作数的所在地址=(ES)*10H+(BX)+(DI);(5)指令MOV BX,[BX+SI+2]中内存操作数的所在地址=(DS)*10H+(BX)+(SI)+2和(DS)*10H+(BX)+(SI)+3;8.判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现原错误指令((8)、(13)除外)期望实现的操作。
(1)MOV AL,BX (9)MOV ES,3278H(2)MOV AL,SL (10)PUSH AL(3)INC [BX] (11)POP [BX](4)MOV 5,AL (12)MOV [1A8H],23DH(5)MOV [BX],[SI] (13)PUSH IP(6)MOV BL,F5H (14)MOV [AX],23DH(7)MOV DX,2000H (15)SHL AX,5(8)POP CS (16)MUL AX,BX答:(1)MOV AL,BX 错,源操作数为字类型,目的操作数为字节类型,二者不一致。
应改为:MOV AX,BX 或MOV AL,BL ;(2)MOV AL,SL 错,SI寄存器不能分为高8位和低8位使用,即没有SL寄存器。
应改为:MOV AX,SI(3)INC [BX] 错,未指定操作数的类型。
应改为:INC BYTE PTR [BX] (4)MOV 5,AL 错,目的操作数使用了立即数,在指令中一般不允许。
应改为:MOV DS:[5],AL(5)MOV [BX],[SI] 错,源操作数和目的操作数均为内存单元,不允许。
应改为:MOV AX,[SI]MOV [BX],AX(6)MOV BL,F5H 错,源操作数错,以A~F开头的数字前应加0。
应改为:MOV BL,0F5H(7)MOV DX,2000H 正确。
(8)POP CS 错,不能将栈顶数据弹至CS中。
(9)MOV ES,3278H 错,立即数不能直接送ES寄存器。
应改为:MOV AX,3278HMOV ES,AX(10)PUSH AL 错,栈操作不能按字节进行。
应改为:PUSH AX(11)POP [BX] 正确。
(12)MOV [1A8H],23DH 错,源操作数是立即数,目的操作数必须使用寄存器指出。