汇编语言学习知识第三五章课后题规范标准答案Word文档格式.docx
《汇编语言学习知识第三五章课后题规范标准答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编语言学习知识第三五章课后题规范标准答案Word文档格式.docx(64页珍藏版)》请在冰豆网上搜索。
(3)用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。
(4)用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。
(5)把数0B5H与(AL)相加,并把结果送回AL中。
(1)ADDDX,BX
(2)ADDAL,[BX][SI]
(3)ADD[BX+0B2H],CX
(4)ADDWORDPTR[0524H],2A59H
(5)ADDAL,0B5H
3.3写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:
(1)寄存器间接寻址
(2)寄存器相对寻址
(3)基址变址寻址
(1)MOVBX,OFFSETBLOCK
ADDBX,(6–1)*2
MOVDX,[BX]
(2)MOVBX,OFFSETBLOCK改为:
MOVBX,(6-1)*2
MOVDX,[BX+(6–1)*2]也可MOVDX,BLOCK[BX]
(3)MOVBX,OFFSETBLOCK
MOVSI,(6–1)*2
MOVDX,[BX][SI]
3.4
FFH
00H
80H
3.6题的作图表示
10H
1B00:
2000H
2001H
2002H
2003H
8000:
FF10H
FF11H
?
→(AL)
→(AH)
现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
(1)MOVAX,1200H
(2)MOVAX,BX
(3)MOVAX,[1200H]
(4)MOVAX,[BX]
(5)MOVAX,1100[BX]
(6)MOVAX,[BX][SI]
(7)MOVAX,1100[BX][SI]
(1)(AX)=1200H
(2)(AX)=0100H
(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)JMPNEARPTR5119H;
(IP)=5119H+((IP)+03H)=7CDCH,物理地址PA=09CDCH
(IP)+03H是JMPNEARPTR5119H指令的下一条指令的首地址。
(2)JMPWORDPTR[BX];
(IP)=((DS)*10H+(BX))=0600H,PA=02600H
(3)JMPD[BX];
(IP)=((DS)*10H+(BX)+D)=098AH,PA=0298AH
3.6设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列,并画图表示出来。
MOVBX,2000H
LESBX,[BX]
MOVAX,ES
:
[BX]
MOVBX,[2000H];
图示如上所示。
MOVAX,[2000H+2]
MOVES,AX
MOVAX,ES:
3.7在0624H单元内有一条二字节JMPSHORTOBJ指令,如其中位移量为
(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的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?
其物理地址值是多少?
(1)MOVAX,0ABH
(2)MOVAX,BX
(3)MOVAX,[100H](4)MOVAX,VAL
(5)MOVAX,[BX](6)MOVAX,ES:
(7)MOVAX,[BP](8)MOVAX,[SI]
(9)MOVAX,[BX+10](10)MOVAX,VAL[BX]
(11)MOVAX,[BX][SI](12)MOVAX,VAL[BX][SI]
(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和SI寄存器基址变址寻址方式;
PA=201A0H
(12)BX和SI寄存器相对基址变址寻址方式;
PA=201F0H
3.9在ARRAY数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:
ARRAYDW23,36,2,100,32000,54,0
ZERODW?
(1)如果BX包含数组ARRAY的初始地址,请编写指令将数据0传送给ZERO单元。
(2)如果BX包含数据0在数组中的位移量,请编写指令将数据0传送给ZERO单元。
(1)MOVAX,[BX+(7-1)*2]
MOV[BX+(7)*2],AX
(2)MOVAX,ARRAY[BX]
MOVARRAY[BX+2],AX
3.10
0AH
14H
1EH
28H
32H
TABLE
TABLE+3
3.11题的TABLE存储方式
如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?
指令执行完后AX寄存器的内容是什么?
MOVAX,TABLE
LEAAX,TABLE
MOVAX,TABLE是将TABLE单元的内容送到AX,(AX)=1234H
LEAAX,TABLE是将TABLE单元的有效地址送到AX,(AX)=0032H
3.11执行下列指令后AX寄存器中的内容是什么?
TABLEDW10,20,30,40,50;
000AH,0014H,001EH,0028H,0032H
ENTRYDW3
┇
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
(AX)=1E00H(TABLE的存储方式如右图所示)
3.12下列ASCII码串(包括空格符)依次存储在起始地址为CSTRING的字节单元中:
CSTRINGDB‘BASEDADDRESSING’
请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。
MOVDH,CSTRING
MOVDL,CSTRING+7-1
3.13已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。
试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。
堆栈区和SP的内容变化过程示意图如下左图所示。
79H
0FH
57H
FFAACH
FFAB0H
3.13题的堆栈区和SP的内容变化过程示意图
FFAAEH
←首次进栈(SP)←(SP)-2
←再次进栈(SP)←(SP)-2
出栈时(SP)←(SP)+2
8000H
2000
3.14题的存储区情况
2B00H
X
2002
2B00:
8000
3.14设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如上右图所示。
请写出两条指令把字变量X装入AX寄存器。
MOVBX,[2000H]
3.15求出以下各十六进制数与十六进制数62A0H之和,并根据结果设置标志位SF、ZF、CF和OF的值。
(1)1234H
(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;
(3)差为45B0H;
SF=0,ZF=0,CF=0,OF=1
(4)差为9F24H;
SF=1,ZF=0