汇编语言第三五章课后题答案-.pdf
《汇编语言第三五章课后题答案-.pdf》由会员分享,可在线阅读,更多相关《汇编语言第三五章课后题答案-.pdf(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.1给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址(2)直接寻址(3)使用 BX 的寄存器寻址(4)使用 BX 的简接寻址(5)使用 BX 的寄存器相对寻址(6)基址变址寻址(7)相对基址变址寻址答:(1)操作数在指令中,即立即数;(2)EA=D=7237H;(3)无 EA,操作数为(BX)=637DH;(4)EA=(BX)=637DH;(5)EA=(BX)+D=0D5B4H;(6)EA=(BX)+(SI)=8E18H;(7)EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此 EA
2、=004FH。3.2试根据以下要求写出相应的汇编语言指令(1)把 BX 寄存器和DX 寄存器的内容相加,结果存入DX 寄存器中。(2)用寄存器 BX 和 SI 的基址变址寻址方式把存储器中的一个字节与AL 寄存器的内容相加,并把结果送到AL 寄存器中。(3)用寄存器BX 和位移量0B2H 的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。(4)用位移量为0524H 的直接寻址方式把存储器中的一个字与数2A59H 相加,并把结果送回存储单元中。(5)把数 0B5H 与(AL)相加,并把结果送回AL 中。答:(1)ADD DX,BX(2)ADD AL,BXSI(3)ADD
3、 BX+0B2H,CX(4)ADD WORD PTR 0524H,2A59H(5)ADD AL,0B5H 3.3写出把首地址为BLOCK 的字数组的第6 个字送到DX 寄存器的指令。要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址答:(1)MOV BX,OFFSET BLOCK ADD BX,(6 1)*2 MOV DX,BX(2)MOV BX,OFFSET BLOCK 改为:MOV BX,(6-1)*2 MOV DX,BX+(6 1)*2 也可MOV DX,BLOCKBX(3)MOV BX,OFFSET BLOCK MOV SI,(6 1)*2 MOV D
4、X,BXSI 3.4现 有(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,1100BX(6)MOV AX,BXSI(7)MOV AX,1100BXSI 答:(1)(AX)=1200H(2)(AX)=0
5、100H(3)(AX)=4C2AH(4)(AX)=3412H(5)(AX)=4C2AH(6)(AX)=7856H(7)(AX)=65B7H 3.5给 定(IP)=2BC0H,(CS)=0200H,位 移 量D=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH,试为以下的转移指令找出转移的偏移地址。(1)段内直接寻址(2)使用 BX 及寄存器间接寻址方式的段内间接寻址(3)使用 BX 及寄存器相对寻址方式的段内间接寻址答:(1)JMP NEAR PTR 5119H;(IP)=5119H+(IP)+03H)=7CDCH,物 理 地
6、址PA=09CDCH(IP)+03H 是 JMP NEAR PTR 5119H 指令的下一条指令的首地址。(2)JMP WORD PTR BX;(IP)=(DS)*10H+(BX)=0600H,PA=02600H(3)JMP DBX;(IP)=(DS)*10H+(BX)+D)=098AH,PA=0298AH 3.6设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H 单元内,含有一个内容为 0FF10H 和 8000H 的指针,它们是一个16 位变量的偏移地址和段地址,试写出把该变量装入AX 的指令序列,并画图表示出来。答:MOV BX,2000H;图示如上所示。MOV AX,2
7、000H+2 MOV ES,AX MOV AX,ES:BX 3.7在 0624H 单元内有一条二字节JMP SHORT OBJ 指令,如其中位移量为(1)27H,(2)6BH,(3)0C6H,试问转向地址OBJ 的值是多少?答:(1)OBJ=0624H+02H+27H=064DH(2)OBJ=0624H+02H+6BH=0691H(3)OBJ=0624H+02H+0C6H=05ECH;C6H 对应的负数为-3AH(向上转移,负位移量)3.8假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据段中变量名VAL
8、 的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什FFH 00H 80H 3.6 题的作图表示10H 1B00:2000H 1B00:2001H 1B00:2002H 1B00:2003H 8000:FF10H 8000:FF11H?(AL)?(AH)MOV BX,2000H LES BX,BX MOV AX,ES:BX 么?其物理地址值是多少?(1)MOV AX,0ABH(2)MOV AX,BX(3)MOV AX,100H(4)MOV AX,V AL(5)MOV AX,BX(6)MOV AX,ES:BX(7)MOV AX,BP (8)MOV AX,SI(9)MOV AX,BX+1
9、0(10)MOV AX,V ALBX(11)MOV AX,BXSI(12)MOV AX,V ALBXSI 答:(1)立即方式;操作数在本条指令中(2)寄存器寻址方式;操作数为(BX)=0100H(3)直接寻址方式;PA=20100H(4)直接寻址方式;PA=20050H(5)BX 寄存器间接寻址方式;PA=20100H(6)附加段 BX 寄存器间接寻址方式;PA=21100H(7)BP 寄存器间接寻址方式;PA=15010H(8)SI 寄存器间接寻址方式;PA=200A0H(9)BX 寄存器相对寻址方式;PA=20110H(10)BX 寄存器相对寻址方式;PA=20150H(11)BX 和 S
10、I 寄存器基址变址寻址方式;PA=201A0H(12)BX 和 SI 寄存器相对基址变址寻址方式;PA=201F0H 3.9在 ARRAY 数组中依次存储了七个字数据,紧接着是名为ZERO 的字单元,表示如下:ARRAY DW 23,36,2,100,32000,54,0 ZERO DW?(1)如果 BX 包含数组ARRAY 的初始地址,请编写指令将数据0 传送给 ZERO 单元。(2)如果 BX 包含数据0 在数组中的位移量,请编写指令将数据0 传送给 ZERO 单元。答:(1)MOV AX,BX+(7-1)*2 MOV BX+(7)*2,AX(2)MOV AX,ARRAY BX MOV A
11、RRAY BX+2,AX 3.10 如 TABLE 为数据段中0032 单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?指令执行完后AX 寄存器的内容是什么?MOV AX,TABLE LEA AX,TABLE 答:MOV AX,TABLE 是将 TABLE 单元的内容送到AX,(AX)=1234H LEA AX,TABLE是将 TABLE 单元的有效地址送到AX,(AX)=0032H 3.11 执行下列指令后AX 寄存器中的内容是什么?TABLE DW 10,20,30,40,50 ;000AH,0014H,001EH,0028H,0032H ENTRY DW 3 MOV
12、 BX,OFFSET TABLE ADD BX,ENTRY MOV AX,BX 答:(AX)=1E00H(TABLE 的存储方式如右图所示)3.12 下列 ASCII 码串(包括空格符)依次存储在起始地址为CSTRING 的字节单元中:0AH 00H 14H 00H 1EH 00H 28H 00H 32H 00H TABLE TABLE+3 3.11题的 TABLE存储方式CSTRING DB,BASED ADDRESSING?请编写指令将字符串中的第1 个和第 7 个字符传送给DX 寄存器。答:MOV DH,CSTRING MOV DL,CSTRING+7-1 3.13 已知堆栈段寄存器SS
13、 的内容是0FFA0H,堆栈指针寄存器SP 的内容是00B0H,先执行两条把8057H 和 0F79H 分别进栈的PUSH 指令,再执行一条POP 指令。试画出堆栈区和 SP 的内容变化过程示意图(标出存储单元的物理地址)。答:堆栈区和SP 的内容变化过程示意图如下左图所示。3.14 设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如上右图所示。请写出两条指令把字变量 X 装入 AX 寄存器。答:MOV BX,2000H MOV AX,ES:BX 3.15 求出以下各十六进制数与十六进制数62A0H 之和,并根据结果设置标志位SF、ZF、CF 和 OF 的值。(1)1234H(
14、2)4321H(3)CFA0H(4)9D60H 答:(1)和为 74D4H;SF=0,ZF=0,CF=0,OF=0(2)和为 A5C1H;SF=1,ZF=0,CF=0,OF=1(3)和为 3240H;SF=0,ZF=0,CF=1,OF=0(4)和为 0000H;SF=0,ZF=1,CF=1,OF=0 3.16 求出以下各十六进制数与十六进制数4AE0H 的差值,并根据结果设置标志位SF、ZF、CF 和 OF 的值。(1)1234H(2)5D90H(3)9090H(4)EA04H 答:(1)差为 C754H;SF=1,ZF=0,CF=1,OF=0(2)差为 12B0H;SF=0,ZF=0,CF=
15、0,OF=0(3)差为 45B0H;SF=0,ZF=0,CF=0,OF=1(4)差为 9F24H;SF=1,ZF=0,CF=0,OF=0 3.17 写出执行以下计算的指令序列,其中X、Y、Z、R、W 均为存放16 位带符号数单元的地址。(1)Z W+(Z-X)(2)ZW-(X+6)-(R+9)(3)Z(W*X)/(Y+6),R余数(4)Z(W-X)/5*Y)*2 答:(1)MOV AX,Z;以下程序都未考虑带符号数的溢出SUB AX,X ADD AX,W 79H 0FH 57H 80H FFAACH FFAB0H 3.13 题的堆栈区和SP 的内容变化过程示意图FFAAEH 首次进栈(SP)(
16、SP)-2 再次进栈(SP)(SP)-2 出栈时(SP)(SP)+2 8000H 1B00:2000 3.14 题的存储区情况2B00H X 1B00:2002 2B00:8000 MOV Z,AX(2)MOV BX,X ADD BX,6 MOV CX,R ADD CR,9 MOV AX,W SUB AX,BX SUB AX,CX MOV Z,AX(3)ADD Y,6 MOV AX,W IMUL X IDIV Y MOV Z,AX MOV R,DX(4)MOV AX,W SUB AX,X CWD MOV BX,5 IDIV BX IMUL Y SHL AX,1;(DX),(AX)*2 RCL
17、DX,1 3.18 已知程序段如下:MOV AX,1234H;(AX)=1234H,标志位不变MOV CL,4;(AX)和标志位都不变ROL AX,CL;(AX)=2341H,CF=1,SF 和 ZF 不变DEC AX;(AX)=2340H,CF=1 不变,SF=0,ZF=0 MOV CX,4;(AX)和标志位都不变MUL CX;(AX)=8D00H,CF=OF=0,其它标志无定义INT 20H 试问:(1)每条指令执行完后,AX 寄存器的内容是什么?(2)每条指令执行完后,进位、符号和零标志的值是什么?(3)程序结束时,AX 和 DX 的内容是什么?答:(1)见注释;(2)见注释;(3)(A
18、X)=8D00H,(DX)=0 3.19 下列程序段中的每条指令执行完后,AX 寄存器及CF、SF、ZF 和 OF 的内容是什么?MOV AX,0;(AX)=0,标志位不变DEC AX;(AX)=0FFFFH,CF 不变,SF=1,ZF=0,OF=0 ADD AX,7FFFH;(AX)=7FFEH,CF=1,SF=0,ZF=0,OF=0 ADD AX,2;(AX)=8000H,CF=0,SF=1,ZF=0,OF=1 NOT AX;(AX)=7FFFH,标志位不变SUB AX,0FFFFH;(AX)=8000H,CF=1,SF=1,ZF=0,OF=1 ADD AX,8000H;(AX)=0,CF
19、=1,SF=0,ZF=1,OF=1 SUB AX,1;(AX)=0FFFFH,CF=1,SF=1,ZF=0,OF=0 AND AX,58D1H;(AX)=58D1H,CF=0,SF=0,ZF=0,OF=0 SAL AX,1;(AX)=0B1A2H,CF=0,SF=1,ZF=0,OF=1 SAR AX,1;(AX)=0D8D1H,CF=0,SF=1,ZF=0,OF=0 NEG AX;(AX)=272FH,CF=1,SF=0,ZF=0,OF=0 ROR AX,1;(AX)=9397H,CF=1,SF 和 ZF 不变,OF=1 答:见注释。3.20 变量 DATAX 和变量 DATAY 的定义如下:
20、DATAX DW 0148H DW 2316H DATAY DW 0237H DW 4052H 请按下列要求写出指令序列:(1)DATAX 和 DATAY 两个字数据相加,和存放在DATAY 中。(2)DATAX 和 DATAY 两个双字数据相加,和存放在从DATAY 开始的双字单元中。(3)解释下列指令的作用:STC MOV BX,DATAX ADC BX,DA TAY(4)DATAX 和 DATAY 两个字数据相乘(用 MUL)。(5)DATAX 和 DATAY 两个双字数据相乘(用 MUL)。(6)DATAX 除以 23(用 DIV)。(7)DATAX 双字除以字DATAY(用 DIV)
21、。答:(1)MOV AX,DA TAX ADD DATAY,AX MOV AX,DA TAX+2 ADD DATAY+2,AX(2)MOV AX,DA TAX ADD DATAY,AX MOV AX,DA TAX+2 ADC DATAY+2,AX MOV DATAY+4,0;用于存放进位位ADC DATAY+4,0(3)DATAX 和 DATAY 两个字数据之和加1,结果存入BX 寄存器。(4)RESULT1 DW 0 DW 0 RESULT2 DW 0 DW 0 MOV AX,DA TAX MUL DATAY MOV RESULT1,AX MOV RESULT1+2,DX MOV AX,DA
22、 TAX+2 MUL DATAY+2 MOV RESULT2,AX MOV RESULT2+2,DX(5)AADW 0 BB DW 0 CC DW 0 DD DW 0 MOV AX,DA TAX MUL DATAY MOV AA,AX MOV BB,DX MOV AX,DA TAX MUL DATAY+2 ADD BB,AX ADC CC,DX MOV AX,DA TAX+2 MUL DATAY ADD BB,AX ADC CC,DX ADC DD,0 MOV AX,DA TAX+2 MUL DATAY+2 ADD CC,AX ADC DD,DX(6)MOV AX,DA TAX MOV BL,
23、23 DIV BL(7)MOV DX,DATAX+2 MOV AX,DA TAX DIV DATAY 3.21 写出对存放在DX 和 AX 中的双字长数求补的指令序列。答:NEG DX 也可为:NOT DX NEG AX NOT AX SBB DX,0 ADD AX,1 ADC DX,0 3.22 试编写一程序求出双字长数的绝对值。双字长数在A 和 A+2 单元中,结果存放在B 和B+2 单元中。答:程序段如下:MOV AX,A MOV DX,A+2 CMP DX,0 JNS ZHENSHU;不是负数则转走NEG DX NEG AX SBB DX,0 ZHENSHU:MOV B,AX MOV
24、B+2,DX INT 20H 3.23 假设(BX)=0E3H,变量 VALUE 中存放的内容为79H,确定下列各条指令单独执行后的结果。(1)XOR BX,V ALUE;(BX)=9AH,CF、OF 都为 0,AF 无定义,SF=1,ZF=0,PF=1(2)AND BX,V ALUE;(BX)=61H,CF、OF 都为 0,AF 无定义,SF=0,ZF=0,PF=0(3)OR BX,V ALUE;(BX)=0FBH,CF、OF 都为 0,AF 无定义,SF=1,ZF=0,PF=0(4)XOR BX,0FFH;(BX)=1CH,CF、OF 都为 0,AF 无定义,SF=0,ZF=0,PF=0(
25、5)AND BX,0;(BX)=00H,CF、OF 都为 0,AF 无定义,SF=0,ZF=1,PF=1(6)TEST BX,01H ;(BX)=0E3H,CF、OF 都为 0,AF 无定义,SF=1,ZF=0,PF=0 答:见注释。3.24 试写出执行下列指令序列后BX 寄存器的内容。执行前(BX)=6D16H。MOV CL,7 SHR BX,CL 答:(BX)=00DAH。3.25 试用移位指令把十进制数+53 和-49 分别乘以2。它们应该用什么指令?得到的结果是什么?如果要除以2 呢?答:MOV AL,53 SAL AL,1;(AL)=(+53*2)=6AH MOV AL,-49 SA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 第三 课后 答案
限制150内