汇编语言习题ppt课件.ppt

上传人:牧羊曲112 文档编号:2088693 上传时间:2023-01-08 格式:PPT 页数:24 大小:184KB
返回 下载 相关 举报
汇编语言习题ppt课件.ppt_第1页
第1页 / 共24页
汇编语言习题ppt课件.ppt_第2页
第2页 / 共24页
汇编语言习题ppt课件.ppt_第3页
第3页 / 共24页
汇编语言习题ppt课件.ppt_第4页
第4页 / 共24页
汇编语言习题ppt课件.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《汇编语言习题ppt课件.ppt》由会员分享,可在线阅读,更多相关《汇编语言习题ppt课件.ppt(24页珍藏版)》请在三一办公上搜索。

1、习题,第三章第四章第五章第六章,3.15 已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。,解答这类问题,首先要明确哪一个操作数是存储器操作数,进而确定其寻址方式,并根据寻址方式计算有效地址。要计算实际地址,则必须明确操作数处于哪一个逻辑段中,再根据相应段寄存器的内容得到段基址,加上有效地址即为实际地址。(1)MOV AL,BX,解:该指令的源操作数为存储器操作数,其寻址方式为寄存器间接寻址,故BX的内容1234H即为有效地址。操作数所处段为隐含段数据段,故段基址为09250H,所

2、以实际地址=段基址+有效地址=09250H+1234H=0A484H。,(2)MOV AH,BP(3)MOV BH,CS:SI,3.15 已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。,解:该指令的源操作数为存储器操作数,其寻址方式为基址寻址,故有效地址为BP的内容5678H。操作数所处段为隐含段堆栈段,故段基址为04680H,所以实际地址=段基址+有效地址=04680H+5678H=09CF8H。,解:该指令的源操作数为存储器操作数,其寻址方式为寄存器间接寻址,故SI的内容13

3、57H即为有效地址。操作数所处段为代码段,故段基址为4B100H,所以实际地址=段基址+有效地址=4B100H+1357H=4C457H。,(4)MOV DL,SI+10H 解:该指令的源操作数为存储器操作数,其寻址方式为变址寻址,故有效地址为SI的内容1357H+10H=1367H。操作数所处段为隐含段数据段,故段基址为09250H,所以实际地址=段基址+有效地址=09250H+1367H=0A5B7H。(5)MOV CH,BP+20H 解:该指令的源操作数为存储器操作数,其寻址方式为基址寻址,故有效地址为BP的内容5678H+20H=5698H。操作数所处段为隐含段堆栈段,故段基址为046

4、80H,所以实际地址=段基址+有效地址=04680H+5698H=09D18H。,3.15 已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。,(6)MOV CL,SS:SI+50H 解:该指令的源操作数为存储器操作数,其寻址方式为变址寻址,故有效地址为SI的内容1357H+50H=13A7H。操作数所处段为堆栈段,故段基址为04680H,所以实际地址=段基址+有效地址=04680H+13A7H=05A27H。(7)MOV BL,DS:BP+30H 解:该指令的源操作数为存储器操作数

5、,其寻址方式为基址寻址,故有效地址为BP的内容5678H+30H=56A8H。操作数所处段为数据段,故段基址为09250H,所以实际地址=段基址+有效地址=09250H+56A8H=0E8F8H。,3.15 已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。,(8)MOV BP+SI+30H,AL 解:该指令的目标操作数为存储器操作数,其寻址方式为基址变址寻址,故有效地址为5678H+1357H+30H=69FFH。操作数所处段为隐含段堆栈段,故段基址为04680H,所以实际地址=段

6、基址+有效地址=04680H+69FFH=0B07FH。(9)MOV BX+SI-40H,AH 解:该指令的目标操作数为存储器操作数,其寻址方式为基址变址寻址,故有效地址为1234H+1357H-40H=254BH。操作数所处段为隐含段数据段,故段基址为09250H,所以实际地址=段基址+有效地址=09250H+254BH=0B79BH。,3.15 已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。,(10)MOV CS:BX+SI,DH解:该指令的目标操作数为存储器操作数,其寻址方

7、式为基址变址寻址,故有效地址为1234H+1357H=258BH。操作数所处段为代码段,故段基址为4B100H,所以实际地址=段基址+有效地址=4B100H+258BH=4D68BH。,3.15 已知:BX=1234H,BP=5678H,SI=1357H,DS=0925H,SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。,1DATADB10,20,30,40,50 ENTERDW3:MOVBX,OFFSET DATA ADDBX,ENTER MOVAX,BX AX=,3228H,0AH14H1EH28H32H03H00H,DATA,ENTER,已知数据定义如

8、下,则给定的程序段执行后,寄存器AX的内容是多少?,2DATADW10,20,30,40,50 ENTERDW3:MOVBX,OFFSET DATA MOVSI,ENTER MOVAX,BX+SI AX=,1E00H,0AH00H14H00H1EH00H28H00H32H00H03H00H,DATA,ENTER,已知数据定义如下,则给定的程序段执行后,寄存器AX的内容是多少?,(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,

9、AX,;AX=100H;DL=03H;AX=6978H;AL=69H;BX=3726H;DX=3726H;(3505H)=0302H;(100H)=1234H,26H37H:78H69H:A6H35H,3305H3306H:3405H3406H:3505H3506H,5.5 已知:AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1,当前数据段中(3305H)=26H,(3306H)=37H,(3405H)=78H,(3406H)=69H,(3505H)=35A6H,DX=3205H,指出下述各条指令执行后目标地址中的数值。,5.6 条件同上题,指出下述指令执行后的结

10、果和标志位状态。(AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1),26H37H:78H69H:A6H35H,3305H3306H: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)

11、ADD SIBX,AX 47DAH 0 0 0 0 0 0(8)XOR AH,AH 00H 0 0 1 1 0注:这里表示状态不确定,5.7 条件同5.5题,指出下述移位指令执行后目标地址中的内容及标志位状态。(AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1),26H37H:78H69H:A6H35H,3305H3306H:3405H3406H:3505H3506H,指 令 结果 OF SF ZF PF CFSHR BH,1 00H 0 0 1 1 1SAR SI,CL 0D01H 0 0 0 0 0(3)ROR CH,1 81H 1 1(4)ROL BX,CL

12、 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 编写完成下列功能的小程序段。,(1)将寄存器AL的第3,4位变反,其余位保持不变。解:XOR AL,18H,(2)将寄存器AL的第3,4位清零,其余位保持不变。解:AND AL,0E7H,(3)将寄存器AL的第3,4位置1,其余位保持不变。解:OR AL,18H,(4)D

13、X和AX联合存放一个32位整数(DX存放高16位),将该数据逻辑左移一位。解:SHL AX,1 RCL DX,1,(5)内存单元MEMB存放着一个8位的数据,将它的高4位和低4位互换。解:MOV CL,4 ROR MEMB,CL,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 编制程序将AL中的第7位和第0位,第6位和第1位,第5位和第2位,第4位和第3位互换。,SHL AL,1 RCR AH,1 SHL AL,1 RCR AH,1 SHL AL,1

14、 RCR AH,1 SHL AL,1 RCR AH,1 MOV AL,AH,B6B5B4B3B2B1B00,B7,CF,AL,B7X X X X X X X,AH,B5B4B3B2B1B000,B6,CF,AL,B6B7X X X X X X,AH,B4B3B2B1B0000,B5,CF,AL,B5B6B7 X X X X X,AH,解:MOV CL,i MOV BL,03H SHL BL,CL AND AL,BL NOT BL AND MEM,BL OR MEM,AL,5.10 编制程序将AL中的第i,i+1位写入MEM单元的第i,i+1位,其它位的内容不变。,指 令 OF SF ZF PF

15、 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 对于下述指令,当AX=8573H,BX=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(

16、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 已知AX=7380H,BX=2500H,写出下述每条指令执行后OF,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(

17、13)ADD AH,AH 1 1 0 0 0 0E6H(14)ADD AH,BH 1 1 0 0 0 98H,6.1 已知AX=7380H,BX=2500H,写出下述每条指令执行后OF,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 A

18、H,1 1 1 B9H注:这里空白表示不受影响。,6.1 已知AX=7380H,BX=2500H,写出下述每条指令执行后OF,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 下列程序有错,请

19、将它们找出来。已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元,若二者相同,将MAX清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 ENDS,CDEBUG EXAM.EXE-RAX023A BX0000 CX0045 DX0000 SPFFFE BP=0000 SI0000DI0000 DS0913 ES0913 SS0913 CS0913 IP=0000.

20、-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 下面一段信息是用DEBUG命令的结果,填充空白处的内容:,0213 0000 0000 0913 0

21、000 96 57 13 BE 00 00 8A 04,解答这类问题,首先必须明确每一个DEBUG命令的意义以及可以从该命令的显示结果中获得哪些必要的信息。就本题而言,可以从R命令的显示结果中得到我们所需要的某些寄存器的内容。而从E命令的显示结果中可知0913段中0号到2号单元的内容分别为96,57,45。U命令是反汇编命令,其显示结果可分为4部分,其中第一列的内容为当前代码段段基址的高16位,第二列的内容为对应的语句在当前代码段中的偏移地址,第三列的内容为与汇编语句相对应的机器指令,第四列的内容为可执行的汇编语句。G命令是执行命令,等号后面的地址为起始地址,未加等号的地址为断点地址。所以此程

22、序段从地址0913:0003所标识的语句开始执行,当指令指针IP的值为0013时,停止执行程序。因此,各个空的内容分别为:,6.12 下面一段信息是用DEBUG命令的结果,填充空白处的内容:,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:0

23、010 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 下面一段信息是用DEBUG命令的结果,填充空白处的内容:,1201 0106 0923 0120 02 89 47 02 CC,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号