资源描述
习题第三章第四章第五章第六章3.15 3.15 已知已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10HSS=0468H,CS=4B10H。指出下述指令中存储器操作数的。指出下述指令中存储器操作数的有效地址和实际地址。有效地址和实际地址。解答这类问题,首先要明确哪一个操作数是存储器操作数,进而确定其寻址方式,并根据寻址方式计算有效地址。要计算实际地址,则必须明确操作数处于哪一个逻辑段中,再根据相应段寄存器的内容得到段基址,加上有效地址即为实际地址。(1)MOVAL,BX解:该指令的源操作数为存储器操作数,其寻址方式为寄存器间接寻址,故BX的内容1234H即为有效地址。操作数所处段为隐含段数据段,故段基址为09250H,所以实际地址=段基址+有效地址=09250H+1234H=0A484H。(2)MOVAH,BP(3)MOVBH,CS:SI3.15 3.15 已知已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10HSS=0468H,CS=4B10H。指出下述指令中存储器操作数的。指出下述指令中存储器操作数的有效地址和实际地址。有效地址和实际地址。解:该指令的源操作数为存储器操作数,其寻址方式为基址寻址,故有效地址为BP的内容5678H。操作数所处段为隐含段堆栈段,故段基址为04680H,所以实际地址=段基址+有效地址=04680H+5678H=09CF8H。解:该指令的源操作数为存储器操作数,其寻址方式为寄存器间接寻址,故SI的内容1357H即为有效地址。操作数所处段为代码段,故段基址为4B100H,所以实际地址=段基址+有效地址=4B100H+1357H=4C457H。(4)MOVDL,SI+10H解:该指令的源操作数为存储器操作数,其寻址方式为变址寻址,故有效地址为SI的内容1357H+10H=1367H。操作数所处段为隐含段数据段,故段基址为09250H,所以实际地址=段基址+有效地址=09250H+1367H=0A5B7H。(5)MOVCH,BP+20H解:该指令的源操作数为存储器操作数,其寻址方式为基址寻址,故有效地址为BP的内容5678H+20H=5698H。操作数所处段为隐含段堆栈段,故段基址为04680H,所以实际地址=段基址+有效地址=04680H+5698H=09D18H。3.15 3.15 已知已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10HSS=0468H,CS=4B10H。指出下述指令中存储器操作数的。指出下述指令中存储器操作数的有效地址和实际地址。有效地址和实际地址。(6)MOVCL,SS:SI+50H解:该指令的源操作数为存储器操作数,其寻址方式为变址寻址,故有效地址为SI的内容1357H+50H=13A7H。操作数所处段为堆栈段,故段基址为04680H,所以实际地址=段基址+有效地址=04680H+13A7H=05A27H。(7)MOVBL,DS:BP+30H解:该指令的源操作数为存储器操作数,其寻址方式为基址寻址,故有效地址为BP的内容5678H+30H=56A8H。操作数所处段为数据段,故段基址为09250H,所以实际地址=段基址+有效地址=09250H+56A8H=0E8F8H。3.15 3.15 已知已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10HSS=0468H,CS=4B10H。指出下述指令中存储器操作数的。指出下述指令中存储器操作数的有效地址和实际地址。有效地址和实际地址。(8)MOVBP+SI+30H,AL解:该指令的目标操作数为存储器操作数,其寻址方式为基址变址寻址,故有效地址为5678H+1357H+30H=69FFH。操作数所处段为隐含段堆栈段,故段基址为04680H,所以实际地址=段基址+有效地址=04680H+69FFH=0B07FH。(9)MOVBX+SI-40H,AH解:该指令的目标操作数为存储器操作数,其寻址方式为基址变址寻址,故有效地址为1234H+1357H-40H=254BH。操作数所处段为隐含段数据段,故段基址为09250H,所以实际地址=段基址+有效地址=09250H+254BH=0B79BH。3.15 3.15 已知已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10HSS=0468H,CS=4B10H。指出下述指令中存储器操作数的。指出下述指令中存储器操作数的有效地址和实际地址。有效地址和实际地址。(10)MOVCS:BX+SI,DH解:该指令的目标操作数为存储器操作数,其寻址方式为基址变址寻址,故有效地址为1234H+1357H=258BH。操作数所处段为代码段,故段基址为4B100H,所以实际地址=段基址+有效地址=4B100H+258BH=4D68BH。3.15 3.15 已知已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10HSS=0468H,CS=4B10H。指出下述指令中存储器操作数的。指出下述指令中存储器操作数的有效地址和实际地址。有效地址和实际地址。1DATADB10,20,30,40,50 ENTERDW3:MOVBX,OFFSET DATA ADDBX,ENTER MOVAX,BXAX=3228H0AH14H1EH28H32H03H00HDATAENTER 已知数据定义如下,则给定的程序段执已知数据定义如下,则给定的程序段执行后,寄存器行后,寄存器AXAX的内容是多少?的内容是多少?2DATADW10,20,30,40,50 ENTERDW3:MOVBX,OFFSET DATA MOVSI,ENTER MOVAX,BX+SIAX=1E00H0AH00H14H00H1EH00H28H00H32H00H03H00HDATAENTER 已知数据定义如下,则给定的程序已知数据定义如下,则给定的程序段执行后,寄存器段执行后,寄存器AXAX的内容是多少?的内容是多少?(1)MOV AX,BX (2)MOV DL,CH(3)MOV AX,SI(4)MOV AL,SI+1(5)MOV BX,SI-100H(6)MOV DX,-200HBXSI(7)MOV BXSI,CX(8)MOV BX,AX;AX=100H;DL=03H;AX=6978H;AL=69H;BX=3726H;DX=3726H;(3505H)=0302H;(100H)=1234H26H37H:78H69H:A6H35H3305H3306H:3405H3406H:3505H3506H5.5 5.5 已知已知:AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1,:AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1,当前数据段中当前数据段中 (3305H)=26H,(3306H)=37H,(3405H)=78H,(3305H)=26H,(3306H)=37H,(3405H)=78H,(3406H)=69H,(3505H)=35A6H,DX=3205H,(3406H)=69H,(3505H)=35A6H,DX=3205H,指出下述各条指指出下述各条指令执行后目标地址中的数值。令执行后目标地址中的数值。5.6 5.6 条件同上题条件同上题,指出下述指令执行后的结果和标志指出下述指令执行后的结果和标志位状态。位状态。(AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1)26H37H:78H69H:A6H35H3305H3306H:3405H3406H:3505H3506H 指 令 结果 OF SF ZF AF PF CF(1)ADD AX,BX 1334H 0 0 0 0 0 0(2)SUB BH,CL 0FFH 0 1 0 1 1 1(3)CMP AL,SI-100H 34H 0 0 0 1 0 0(4)AND AL,SIBX 24H 0 0 0 1 0(5)NOT BX 0FEFFH 标志位不受影响(6)OR BL,CH 03H 0 0 0 1 0(7)ADD SIBX,AX 47DAH 0 0 0 0 0 0(8)XOR AH,AH 00H 0 0 1 1 0注:这里表示状态不确定 5.7 5.7 条件同条件同5.55.5题题,指出下述移位指令执行后目标地指出下述移位指令执行后目标地址中的内容及标志位状态。址中的内容及标志位状态。(AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1)26H37H:78H69H:A6H35H3305H3306H:3405H3406H:3505H3506H 指 令 结果 OF SF ZF PF CF(1)SHR BH,1 00H 0 0 1 1 1(2)SAR SI,CL 0D01H 0 0 0 0 0(3)ROR CH,1 81H 1 1(4)ROL BX,CL 0400H 0 0(5)SAL AX,CL 48D0H 0 0 0 0 0(6)SAR BYTE PTRSI,CL 1EH 0 0 0 1 0(7)RCR BYTE PTRBXSI,1 0D3H 0 0(8)SHL WORD PTRSI,1 0D2F0H 1 1 0 1 0注:这里表示状态不确定,空白表示不受影响。5.8 5.8 编写完成下列功能的小程序段。编写完成下列功能的小程序段。(1)将寄存器AL的第3,4位变反,其余位保持不变。解:XOR AL,18H(2)将寄存器AL的第3,4位清零,其余位保持不变。解:AND AL,0E7H(3)将寄存器AL的第3,4位置1,其余位保持不变。解:OR AL,18H(4)DX和AX联合存放一个32位整数(DX存放高16位),将该数据逻辑左移一位。解:SHL AX,1 RCL DX,1(5)内存单元MEMB存放着一个8位的数据,将它的高4位和低4位互换。解:MOV CL,4 ROR MEMB,CL 5.8 5.8 编写完成下列功能的小程序段。编写完成下列功能的小程序段。解:SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 5.9 5.9 编制程序将编制程序将ALAL中的第中的第7 7位和第位和第0 0位位,第第6 6位和第位和第1 1位位,第第5 5位和第位和第2 2位位,第第4 4位和第位和第3 3位互换。位互换。SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 MOV AL,AHB6B5B4B3B2B1B00B7CFALB7X X X X X X XAHB5B4B3B2B1B000B6CFALB6B7X X X X X XAHB4B3B2B1B0000B5CFALB5B6B7 X X X X XAH 解:MOV CL,i MOV BL,03H SHL BL,CL AND AL,BL NOT BL AND MEM,BL OR MEM,AL 5.10 5.10 编制程序将编制程序将ALAL中的第中的第i,i+1i,i+1位写入位写入MEMMEM单元单元的第的第i,i+1i,i+1位位,其它位的内容不变。其它位的内容不变。指 令 OF SF ZF PF CF 目标地址内容 (1)ADD AL,BL 1 1 0 1 0 0A5H(2)SUB AH,BL 1 0 0 1 0 53H(3)NEG BH 1 1 0 0 1 80H(4)SAR AH,1 0 1 0 0 1 0C2H(5)AND AL,BL 0 0 0 0 0 32H 5.20 5.20 对于下述指令对于下述指令,当当AX=8573HAX=8573H,BX=8032HBX=8032H时时,写出各指令执行后标志位的状态写出各指令执行后标志位的状态及目标地址内容。及目标地址内容。指 令 OF SF ZF PF CF 目标地址内容 (1)ADD AX,BX 1 1 0 0 0 9880H(2)SUB AL,AH 1 0 0 0 0 0DH(3)CMP AL,BH 1 0 0 0 0 80H(4)NEG BL 0 0 1 1 0 00H(5)AND AL,BH 0 0 1 1 0 00H(6)OR AL,AH 0 1 0 1 0 0F3H(7)SHL AL,1 1 0 1 1 1 00H 6.1 6.1 已知已知AX=7380H,BX=2500H,AX=7380H,BX=2500H,写出下述每写出下述每条指令执行后条指令执行后OF,SF,ZF,PF,CFOF,SF,ZF,PF,CF的状态和目标地的状态和目标地址的内容。址的内容。指 令 OF SF ZF PF CF 目标地址内容 (8)SHL BL,1 0 0 1 1 0 00H(9)SAR AL,1 0 1 0 1 0 0C0H(10)ROL AH,1 1 0 0E6H(11)ROL AL,1 1 1 01H(12)ROR BH,1 1 1 92H(13)ADD AH,AH 1 1 0 0 0 0E6H(14)ADD AH,BH 1 1 0 0 0 98H 6.1 6.1 已知已知AX=7380H,BX=2500H,AX=7380H,BX=2500H,写出下述每写出下述每条指令执行后条指令执行后OF,SF,ZF,PF,CFOF,SF,ZF,PF,CF的状态和目标地的状态和目标地址的内容。址的内容。指 令 OF SF ZF PF CF 目标地址内容 (15)SUB AL,BH 1 0 0 0 0 5BH(16)MUL BH 1 1 1280H(17)IMUL BX 1 1 10B18000H(18)XOR BH,AH 0 0 0 1 0 56H(19)NEG AL 1 1 0 0 1 80H(20)SHR AH,1 0 0 0 1 1 39H(21)ROR AH,1 1 1 B9H注:这里空白表示不受影响。6.1 6.1 已知已知AX=7380H,BX=2500H,AX=7380H,BX=2500H,写出下述每写出下述每条指令执行后条指令执行后OF,SF,ZF,PF,CFOF,SF,ZF,PF,CF的状态和目标地的状态和目标地址的内容。址的内容。1.SEGA SEGMENT2.DAX:DW 2003.DAY DB 1000H4.MAX DB 0,05.SEGA ENDS6.CSEG SEGMENT7.ASSUME CS:CSEG8.ASSUME DS:SEGA9.CMP AX,DAX10.JG XGY11.JZ ZERO12.MOV AX,DAY13.XGY:MOV MAX,AX14.ZERO HLT15.ENDS16.END START 6.9 6.9 下列程序有错下列程序有错,请将它们找出来。已知程序请将它们找出来。已知程序欲完成的功能是从两个无符号数中选出较大者送入欲完成的功能是从两个无符号数中选出较大者送入MAXMAX单元单元,若二者相同若二者相同,将将MAXMAX清清0 0。;应将DAX:改为DAX;应将DB改为DW;改为 MAX DW 0在第8行和第9行之间应插入如下语句:START:MOV AX,SEGA MOV DS,AX MOV AX,DAX;DAX改为DAY;JG改为JA;ZERO改为ZERO:;改为 CSEG ENDSCDEBUG EXAM.EXE-RAX023A BX0000 CX0045 DX0000 SPFFFE BP=0000 SI0000DI0000 DS0913 ES0913 SS0913 CS0913 IP=0000.-E DS:00913:0000 5 96 46 57 00 45-U30913:0003 BE 00 00 MOV SI,000913:0006 8A 04 MOV AL,SI0913:0008 02 44 01 ADD AL,SI+10913:000B 79 06 JNS 130913:000D F6 D8 NEG AL0913:000F 88 44 02 MOV SI+2,AL0913:0012 CC INT 30913:0013-G3 13AX BX SI D DS:0 7 :6.12 6.12 下面一段信息是用下面一段信息是用DEBUGDEBUG命令的结果命令的结果,填充空白处的内容填充空白处的内容:0213 0000 0000 0913 0000 96 57 13 BE 00 00 8A 04 解答这类问题,首先必须明确每一个DEBUG命令的意义以及可以从该命令的显示结果中获得哪些必要的信息。就本题而言,可以从R命令的显示结果中得到我们所需要的某些寄存器的内容。而从E命令的显示结果中可知0913段中0号到2号单元的内容分别为96,57,45。U命令是反汇编命令,其显示结果可分为4部分,其中第一列的内容为当前代码段段基址的高16位,第二列的内容为对应的语句在当前代码段中的偏移地址,第三列的内容为与汇编语句相对应的机器指令,第四列的内容为可执行的汇编语句。G命令是执行命令,等号后面的地址为起始地址,未加等号的地址为断点地址。所以此程序段从地址0913:0003所标识的语句开始执行,当指令指针IP的值为0013时,停止执行程序。因此,各个空的内容分别为:6.12 6.12 下面一段信息是用下面一段信息是用DEBUGDEBUG命令的结果命令的结果,填充空白处的内容填充空白处的内容:0213 0000 0000 0913 0000 96 57 13 BE 00 00 8A 04 AX BX SI D DS:0 7 :CDEBUG EXAM.EXE-U 50933:0005 BB 01 00 MOV BX,00010933:0008 B0 24 MOV AL,240933:000A 74 12 JZ 001E0933:000C 8D 1E 06 01 LEA BX,01060933:0010 8A 07 MOV AL,BX0933:0012 00 47 01 ADD BX+01,AL0933:0015 70 07 JO 001E0933:0017 28 47 02 SUB BX+02,AL0933:001A F6 E1 MUL CL0933:001C 73 03 JNB 00210933:001E 88 47 02 MOV BX+2,AL0933:0021 89 47 02 MOV BX+2,AX0933:0024 CC INT 30933:0025.-RAX1234 BX0123 CX01FF DX0100 SP=FFFE BP=0000 SI0000DI1200 DS0923 ES0923 SS0923 CS=0933 IP000C.-G 1A 21AX BX -D 120 124 :6.13 6.13 下面一段信息是用下面一段信息是用DEBUGDEBUG命令的结果命令的结果,填充空白处的内容填充空白处的内容:1201 0106 0923 0120 02 89 47 02 CC
展开阅读全文