第四章 指令与寻址方式习题解答 (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 。
- 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 错,源操作数是立即数,目的操作数必须使用寄存器指出。