收藏 分享(赏)

东北大学汇编语言习题课.pdf

上传人:精品资料 文档编号:8547673 上传时间:2019-07-02 格式:PDF 页数:75 大小:800.93KB
下载 相关 举报
东北大学汇编语言习题课.pdf_第1页
第1页 / 共75页
东北大学汇编语言习题课.pdf_第2页
第2页 / 共75页
东北大学汇编语言习题课.pdf_第3页
第3页 / 共75页
东北大学汇编语言习题课.pdf_第4页
第4页 / 共75页
东北大学汇编语言习题课.pdf_第5页
第5页 / 共75页
点击查看更多>>
资源描述

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

2、段为隐含段数据段 ,故段基址为 09250H,所以实际地址 =段基址 +有效地址 =09250H+1234H=0A484H。(2) MOV AH,BP解 :该指令的源操作数为存储器操作数 ,其寻址方式为基址寻址 ,故有效地址为 BP的内容 5678H。操作数所处段为隐含段堆栈段 ,故段基址为 04680H,所以实际地址 =段基址+有效地址 =04680H+5678H=09CF8H。(3) MOV BH,CS:SI解 :该指令的源操作数为存储器操作数 ,其寻址方式为寄存器间接寻址 ,故 SI的内容 1357H即为有效地址。操作数所处段为代码段 ,故段基址为 4B100H,所以实际地址 =段基址

3、+有效地址 =4B100H+1357H=4C457H。3.15 已知 :BX=1234H,BP=5678H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。(4) MOV DL,SI+10H解 :该指令的源操作数为存储器操作数 ,其寻址方式为变址寻址 ,故有效地址为 SI的内容 1357H+10H=1367H。操作数所处段为隐含段数据段 ,故段基址为 09250H,所以实际地址 =段基址 +有效地址 =09250H+1367H=0A5B7H。(5) MOV CH,BP+20H解 :该指令的源操作数为存储器操作数 ,其寻

4、址方式为基址寻址 ,故有效地址为 BP的内容 5678H+20H=5698H。操作数所处段为隐含段堆栈段 ,故段基址为 04680H,所以实际地址 =段基址 +有效地址 =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

5、,所以实际地址 =段基址 +有效地址 =04680H+13A7H=05A27H。(7) MOV BL,DS:BP+30H解 :该指令的源操作数为存储器操作数 ,其寻址方式为基址寻址 ,故有效地址为 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解 :该指令

6、的目标操作数为存储器操作数 ,其寻址方式为基址变址寻址 ,故有效地址为 5678H+1357H+30H=69FFH。操作数所处段为隐含段堆栈段 ,故段基址为 04680H,所以实际地址 =段基址 +有效地址 =04680H+69FFH=0B07FH。(9) MOV BX+SI-40H,AH解 :该指令的目标操作数为存储器操作数 ,其寻址方式为基址变址寻址 ,故有效地址为 1234H+1357H-40H=254BH。操作数所处段为隐含段数据段 ,故段基址为 09250H,所以实际地址 =段基址 +有效地址 =09250H+254BH=0B79BH。3.15 已知 :BX=1234H,BP=567

7、8H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。(10) MOV CS:BX+SI,DH解 :该指令的目标操作数为存储器操作数 ,其寻址方式为基址变址寻址 ,故有效地址为 1234H+1357H=258BH。操作数所处段为代码段 ,故段基址为 4B100H,所以实际地址 =段基址 +有效地址 =4B100H+258BH=4D68BH。3.15 已知 :BX=1234H,BP=5678H, SI=1357H,DS=0925H, SS=0468H,CS=4B10H。指出下述指令中存储器操作数的有效地址和实际地址。1

8、DATA DB 10, 20, 30, 40, 50ENTER DW 3:MOV BX, OFFSET DATAADD BX,ENTERMOV AX, BXAX= 3228H0AH14H1EH28H32H03H00HDATAENTER已知数据定义如下,则给定的程序段执行后,寄存器 AX的内容是多少?2 DATA DW 10, 20, 30, 40, 50ENTER DW 3:MOV BX, OFFSET DATAMOV SI, ENTERMOV AX, BX+SIAX= 1E00H0AH00H14H00H1EH00H28H00H32H00H03H00HDATAENTER已知数据定义如下,则给定

9、的程序段执行后,寄存器 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,AX; AX=100H; DL=03H; AX=6978H; AL=69H; BX=3726H; DX=3726H; (3505H)=0302H; (100H)=1234H26H37H:78H69H:A6H35H3305H3306H:3405H3406H:3505H3506H5.5 已知 : AX=1234H,BX=1

10、00H,CX=0302H,SI=3405H,CF=1,当前数据段中 (3305H)=26H,(3306H)=37H,(3405H)=78H,(3406H)=69H,(3505H)=35A6H,DX=3205H,指出下述各条指令执行后目标地址中的数值。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

11、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.5题 ,指出下述移位指令执行后目标地址中的内容及标志位状态。(AX=1234H,BX=100H,CX=0302H,SI=3405H,CF=1

12、)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

13、 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)DX和 AX联合存放一个 32位整数 (DX存放高 16位 ),将该数据逻辑左移一位。解 : SHL AX,1RCL DX,1(5)内存单元 MEMB存放着一个 8位的数据 ,将它的高 4位和低 4位互换。解 : MOV CL,4ROR MEM

14、B,CL5.8 编写完成下列功能的小程序段。解 : SHL AL,1RCR AH,1SHL AL,1RCR AH,1SHL AL,1RCR AH,1SHL AL,1RCR AH,15.9 编制程序将 AL中的第 7位和第 0位 ,第 6位和第 1位 ,第 5位和第 2位 ,第 4位和第 3位互换。SHL AL,1RCR AH,1SHL AL,1RCR AH,1SHL AL,1RCR AH,1SHL AL,1RCR AH,1MOV AL,AHB6B5B4B3B2B1B00B7CF ALB7X X X X X X XAHB5B4B3B2B1B000B6CF ALB6B7X X X X X XAH解

15、 : MOV CL,iMOV BL,03HSHL BL,CLAND AL,BLNOT BLAND MEM,BLOR MEM,AL5.10 编制程序将 AL中的第 i,i+1位写入 MEM单元的第 i,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 32H5.20 对于下述指令 , 当 AX=8573H,BX

16、=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 00H6.1 已知 AX=7380H,BX=2500H,写出下述每条指令执行后 OF,SF,ZF,PF,CF的状态和目

17、标地址的内容。指 令 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 已知 AX=7380H,BX=2500H,写出下述每条指令执行后 OF,SF,ZF,PF,CF的状态和目标地址的内容。指 令 OF SF ZF PF CF 目标地址内容(15)SUB A

18、L,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 已知 AX=7380H,BX=2500H,写出下述每条指令执行后 OF,SF,ZF,PF,CF的状态和目标地址的内容。1. SEGA SEGMENT2. DAX: DW 2003. DAY DB 1000H4. MAX DB 0,05. S

19、EGA 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 START6.9 下列程序有错 , 请将它们找出来。已知程序欲完成的功能是从两个无符号数中选出较大者送入 MAX单元 ,若二者相同 ,将 MAX清 0。;应将 DAX:改为 DAX;应将 DB改为 DW;改为 MAX DW 0在第 8行和第 9行之间应插入如下语句 :START: MOV AX,

20、SEGAMOV DS,AXMOV AX,DAX; DAX改为 DAY; JG改为 JA; ZERO改为 ZERO:;改为 CSEG ENDSCDEBUG EXAM.EXE-RAX 023A BX 0000 CX 0045 DX 0000 SP FFFE BP=0000 SI 0000DI 0000 DS 0913 ES 0913 SS 0913 CS 0913 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 AD

21、D 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-G 3 13AX BX SID DS:0 7:6.12 下面一段信息是用 DEBUG命令的结果 , 填充空白处的内容 : 0213 0000 0000 0913 0000 96 57 13 BE 00 00 8A 04解答这类问题 ,首先必须明确每一个 DEBUG命令的意义以及可以从该命令的显示结果中获得哪些必要的信息。就本题而言 ,可以从 R命令的显示结果中得到我们所需要的

22、某些寄存器的内容。而从 E命令的显示结果中可知 0913段中 0号到 2号单元的内容分别为 96,57,45。U命令是反汇编命令 ,其显示结果可分为 4部分 ,其中第一列的内容为当前代码段段基址的高 16位 ,第二列的内容为对应的语句在当前代码段中的偏移地址 ,第三列的内容为与汇编语句相对应的机器指令 ,第四列的内容为可执行的汇编语句。G命令是执行命令 ,等号后面的地址为起始地址 ,未加等号的地址为断点地址。所以此程序段从地址 0913:0003所标识的语句开始执行 ,当指令指针 IP的值为 0013时 ,停止执行程序。因此 ,各个空的内容分别为 :6.12 下面一段信息是用 DEBUG命令的

23、结果 , 填充空白处的内容 : 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 00

24、210933:001E 88 47 02 MOV BX+2,AL0933:0021 89 47 02 MOV BX+2,AX0933:0024 CC INT 30933:0025 -RAX 1234 BX 0123 CX 01FF DX 0100 SP=FFFE BP=0000 SI 0000DI 1200 DS 0923 ES 0923 SS 0923 CS=0933 IP 000C-G 1A 21AX BX-D 120 124 :6.13 下面一段信息是用 DEBUG命令的结果 , 填充空白处的内容 : 1201 0106 0923 0120 02 89 47 02 CCMOV AX,00

25、E0HMOV DS,AXMOV BX,0200HMOV CX,BXNEXT: MOV BX,BLINC BLLOOP NEXTMOV AH,4CHINT 21H7.17 下列程序执行完后 , 物理地址单元01070H的内容是什么 ?解答这类问题 ,首先要明确物理地址和逻辑地址的关系 ,物理地址 01070H对应到 00E0H段的偏移地址为01070H-00E00H=270H,执行上述程序段可知该单元内容为 70H。MOV DI,0001HMOV SI,0000HMOV CX,0080HCLDREP MOVSWMOV AH,4CHINT 21H7.18 已知当前的 DS和 ES指向同一个段 ,且

26、当前数据段从 0000H到 00FFH单元的内容分别为01,02,03,.,0FEH,0FFH,00H,问下列程序执行后 ,0000H 00FFH单元的内容有什么变化 ?010203040506:FEFF000000H0001H0002H0003H0004H0005H:00FDH00FEH00FFHSIDIMOV DI,0001HMOV SI,0000HMOV CX,0080HCLDREP MOVSWMOV AH,4CHINT 21H7.18 已知当前的 DS和 ES指向同一个段 ,且当前数据段从 0000H到 00FFH单元的内容分别为01,02,03,.,0FEH,0FFH,00H,问下列

27、程序执行后 ,0000H 00FFH单元的内容有什么变化 ?010102040506:FEFF000000H0001H0002H0003H0004H0005H:00FDH00FEH00FFHSIDIMOV DI,0001HMOV SI,0000HMOV CX,0080HCLDREP MOVSWMOV AH,4CHINT 21H7.18 已知当前的 DS和 ES指向同一个段 ,且当前数据段从 0000H到 00FFH单元的内容分别为01,02,03,.,0FEH,0FFH,00H,问下列程序执行后 ,0000H 00FFH单元的内容有什么变化 ?010102040506:FEFF000000H0

28、001H0002H0003H0004H0005H:00FDH00FEH00FFHSIDIMOV DI,0001HMOV SI,0000HMOV CX,0080HCLDREP MOVSWMOV AH,4CHINT 21H7.18 已知当前的 DS和 ES指向同一个段 ,且当前数据段从 0000H到 00FFH单元的内容分别为01,02,03,.,0FEH,0FFH,00H,问下列程序执行后 ,0000H 00FFH单元的内容有什么变化 ?010102020406:FEFF000000H0001H0002H0003H0004H0005H:00FDH00FEH00FFHSIDIMOV DI,0001HMOV SI,0000HMOV CX,0080HCLDREP MOVSWMOV AH,4CHINT 21H7.18 已知当前的 DS和 ES指向同一个段 ,且当前数据段从 0000H到 00FFH单元的内容分别为01,02,03,.,0FEH,0FFH,00H,问下列程序执行后 ,0000H 00FFH单元的内容有什么变化 ?010102020406:FEFF000000H0001H0002H0003H0004H0005H:00FDH00FEH00FFHSIDI

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报