第3、4章作业(汇编部分)_第1页
第3、4章作业(汇编部分)_第2页
第3、4章作业(汇编部分)_第3页
第3、4章作业(汇编部分)_第4页
第3、4章作业(汇编部分)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 8086指令系统,2020/6/26,2,2020年6月26日星期五,2,6、分别用一条指令完成下列要求。,(1) 将寄存器BX的内容传送给CX: MOV CX , BX (2) 将立即数1234H传送给AX MOV AX , 1234H (3) 把数据段中偏移地址为20H的存储单元的传送给AX寄存器 MOV AX , 20H (4) 把字节数据20H传送到BX指定的存储单元地址中 MOV byte ptr BX , 20H,2020/6/26,3,2020年6月26日星期五,3,8、假定(BX)=3000H,(SI)=1200H,(X)=300H,指出下列操作数中源操作数的寻址方式,

2、同时写出各指令源操作数的地址。,(1) MOV AX,1234H 源操作数寻址方式:立即数寻址方式; (2) MOV AX, X 源操作数寻址方式: 直接寻址方式; EA = 300H; (3) MOV AX, BX 源操作数寻址方式: 寄存器间接寻址方式; EA = (BX) = 3000H;,2020/6/26,4,2020年6月26日星期五,4,8、假定(BX)=3000H,(SI)=1200H,(X)=300H,指出下列操作数中源操作数的寻址方式,同时写出各指令源操作数的地址。,(4) MOV AX, BX+SI: 源操作数的寻址方式:基址变址寻址方式; EA = (BX) + (SI

3、) = 4200H; (5) MOV AX, XBXSI 源操作数的寻址方式: 相对基址变址寻址方式; EA = (BX) + (SI) + X = 4500H; (6) MOV AX, BX 源操作数的寻址方式:寄存器寻址方式;,2020/6/26,5,2020年6月26日星期五,5,10、设(DS)=1000H, (ES)=1500H, (SS)=2000H, (BX)=0010H, (BP)=00A0H, (SI)=0100H,指出下列操作数中源操作数的寻址方式,并计算其物理地址。,(1)MOV AX, 0200H 物理地址=(DS)16+0200H = 10200H (2)MOV AX

4、, BX 物理地址=(DS)16+ (BX) = 1000H16+ 0010H = 10010H (3)MOV AX, ES:BX 物理地址= (ES) 16+ (BX) = 1500H16+ 0010H=15010H,直接寻址方式,寄存器间接寻址方式,寄存器间接寻址方式,2020/6/26,6,2020年6月26日星期五,6,10、设(DS)=1000H, (ES)=1500H, (SS)=2000H, (BX)=0010H, (BP)=00A0H, (SI)=0100H,指出下列操作数中源操作数的寻址方式,并计算其物理地址。,(4)MOV AX, SS:BX 物理地址= (SS) 16+

5、(BX) = 2000H16+ 0010H=20010H (5)MOV AX, BP 物理地址=(SS)16+ (BP) = 2000H16+ 00A0H=200A0H (6)MOV AX, BX+100H 物理地址= DS 16+ (BX) +100H = 1000H16+ 0010H +100H =10110H,寄存器间接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,2020/6/26,7,2020年6月26日星期五,7,10、设(DS)=1000H, (ES)=1500H, (SS)=2000H, (BX)=0010H, (BP)=00A0H, (SI)=0100H,指出下列操作数中

6、源操作数的寻址方式,并计算其物理地址。,(7) MOV AX, BXSI 物理地址= DS 16+ (BX) +(SI) = 1000H16+ 0010H+0100H=10110H (8) MOV AX, 100HBXSI 物理地址=DS16+ (BX) +(SI) + 100H = 100016+ 0010H+0100H=10210H (9) MOV AX, SI 物理地址= DS 16+ (SI) = 1000H16+ 0100H =10100H,基址变址寻址方式,相对基址变址寻址方式,寄存器间接寻址方式,2020/6/26,8,2020年6月26日星期五,8,11、指出下列指令的错误原因

7、。,(1)MOV AL , 1234H 操作类型不匹配; (2)MOV CS , AX 目的操作数不能是CS段寄存器; (3)MOV 1000, 1000h 指令的操作类型不明确; 需使用PTR显式地指明目的操作数1000的数据类型;,2020/6/26,9,2020年6月26日星期五,9,11、指出下列指令的错误原因。,(4) MOV BYTE PTRBX, 1000H 两个操作数的类型不匹配; (5)PUSH AL 堆栈操作指令的操作数应是字数据,而AL是字节型的; (6) XCHG DS , AX XCHG指令中的操作数不能为段寄存器;,2020/6/26,10,2020年6月26日星期

8、五,10,11、指出下列指令的错误原因,(7)SHL AX , 5 若移位的位数大于1,则使用CL在指令中表示移位次数; (8)XCHG BX , SI 两个操作数同时为存储单元寻址方式,且两个数据的类型不确定; (9) IN AX , BX IN指令中应使用DX存放IO端口地址;,2020/6/26,11,2020年6月26日星期五,11,11、指出下列指令的错误原因。,(10)DEC SI 操作数类型不确定; (11) NEG 1234H NEG指令中操作数不能为立即数; (12) MUL 05H 乘法指令的操作数不能是立即数;,2020/6/26,12,2020年6月26日星期五,12,

9、11、指出下列指令的错误原因,(13)DIV AX,BX 16位系统中,DIV指令是单操作数指令; (14) LEA AX , 0100H LEA指令的源操作数只能是存储单元寻址方式; (15)AND BX , SI 两个操作数同时是存储单元;,2020/6/26,13,2020年6月26日星期五,13,12、设(DS)=1000H, (SS)=2000H, (BX)=0100H, (BP)=0200H, (SI)=0100H, 写出下列指令执行后AX的内容。,(1)MOV AX , 0100H (AX)=0100H (2 )MOV AX , 0100H PA = (DS)16+0100H=1

10、0100H (AX)=1020H (3)MOV AX , BX PA = DS16+(BX) =10100H (AX)=1020H,10100H,10200H,20200H,2020/6/26,14,2020年6月26日星期五,14,12、设(DS)=1000H, (SS)=2000H, (BX)=0100H, (BP)=0200H, (SI)=0100H, 写出下列指令执行后AX的内容 。,(4)MOV AX , BP PA = (SS)16+(BP) = 20200H (AX)=5030H (5 )MOV AX,100H+BX PA= (DS)16+100H+(BX) = 10000H+1

11、00H+0100H = 10200H (AX)=2020H,10100H,10200H,20200H,2020/6/26,15,2020年6月26日星期五,15,12、设(DS)=1000H, (SS)=2000H, (BX)=0100H, (BP)=0200H, (SI)=0100H, 写出下列指令执行后AX的内容 。,(6)MOV AX , BXSI PA = (DS)16+(BX)+(SI) = 10200H (AX)=2020H (7 )MOV AX , SI PA = (DS)16+(SI) =10000H+0100H=10100H (AX)=1020H,10100H,10200H,

12、20200H,2020/6/26,16,2020年6月26日星期五,16,13、已知(DS)=1000H, (SS)=0F00H, (BX)=0010H,要使下列指令的源操作数指向同一个物理地址10320H,写出下列指令中寄存器BP、SI、DI和位移量X的值。,(1)MOV AX , SI (SI)=10320H(DS)16=10320H10000H=0320H (2)MOV AX , BP (BP)=10320H(SS)16=10320H0F000H=1320H (3)MOV AX , BX+DI (DI)=10320H(DS)16(BX) =10320H10000H0010H=0310H

13、(4)MOV AX , XBX+SI (SI)=10320H(DS)16(BX) (SI) =10320H10000H0010H320H = -10H,2020/6/26,17,2020年6月26日星期五,17,14、下列程序段中,各指令执行后AX,CF、OF、ZF和SF的内容如何变化。,2020年6月26日星期五,18,2020年6月26日星期五,18,16、写出实现下列功能的指令或程序段。,(1) 将AL中的1、3、5位变反。 测试数据为:0010 1010B,即2AH XOR AL , 2AH (2)判断AL中的1、3、5位是否均为1。若是将AL置1,否则将AL置0。 多位同时为0可用T

14、EST指令测试; 故先将AL中的值取反,再判断;,(2)解答 MOV BL , AL NOT BL TEST BL , 2AH JZ NEXT MOV AL , 0 JMP EXIT NEXT: MOV AL , 1 EXIT: ,2020年6月26日星期五,19,2020年6月26日星期五,19,16、写出实现下列功能的指令或程序段。,(3)将AL中的高4位与BL中的低4位、 AL中的低4位与BL中的高4位交换。 MOV DL , AL MOV DH , BL MOV CL , 4 ROR DL , CL MOV BL , DL ROR DH , CL MOV AL , DH,AL,BL,A

15、L,BL,2020年6月26日星期五,20,2020年6月26日星期五,20,16、写出实现下列功能的指令或程序段。,(4)将标志寄存器的内容传送到AX。 PUSHF POP AX (5)将标志寄存器的TF位清0 PUSHF POP AX AND AX , 0FEFFH PUSH AX POPF,P47 最后一行,2020年6月26日星期五,21,2020年6月26日星期五,21,16、写出实现下列功能的指令或程序段。,(6)将双字内容逻辑右移4位。设X位双字变量。 假定双字数据在变量X中; MOV AX , word ptr X MOV DX , word ptr X+2 MOV CX ,

16、4 NEXT: SHR DX , 1 RCR AX , 1 LOOP NEXT MOV word ptr X , AX MOV word ptr X+2 , DX,2020年6月26日星期五,22,2020年6月26日星期五,22,16、写出实现下列功能的指令或程序段。,(7)将偏移地址为0100H开始的连续100个字节的数据单元传送到同一数据段中偏移地址为0150H的数据区中。 MOV SI , 100H MOV CX , 100 AGAIN: MOV AL , SI MOV SI+50H , AL INC SI LOOP AGAIN,2020年6月26日星期五,23,2020年6月26日星

17、期五,23,16、写出实现下列功能的指令或程序段。,(8)将A单元中的内容与B单元中的内容相乘后,结果保存中在C1单元的连续两个字节中。 MOV AL , A MUL B MOV word ptr C1 , AX,第4章 MASM汇编语言知识,2020/6/26,25,3、说明下列两条语句的区别,(1) X DB 12H 此语句中定义的X是一个变量; 此语句可为X分配相应空间,其数值在内存中占一个字节; 符号X可表示一个存储单元地址; (2) X EQU 12H 此语句中定义的X是一个常量; 此语句并不会为X分配相应空间; 符号X仅代替数值12H。,2020/6/26,26,4、指出下列数据段

18、定义后,各数据在内存储器中的分配情况。,DATA SEGMENT A DB 1,2,3,4 B DB 1,2,3,4 C DW 1,2,3,4 D EQU 1234H E DD 1234H DATA ENDS,D是常量,不分配内存空间;,A,B,C+2,C,D,2020/6/26,27,5、设某数据段如下,试指出 (1)STR1的偏移地址 100H (2)NUM是多少 STR1所占存储单元的个数,即0AH; (3)STR2+3的存储单元的内容 字符“O”;,A、B、NUM均为常量; 不分配内存空间;,ORG 100H A=12H B=A+10H STR1 DB DATASTRING NUM E

19、QU $-STR1 STR2 DB INFORMATION,2020/6/26,28,6、下列程序段运行后,Y单元开始的存储区存放的数据是什么?,X DB 78H Y DB 3 DUP (?) LEA SI , Y MOV CX , 3 MOV AL , X LOP: SAR AL , 1 MOV SI , AL INC SI LOOP LOP,X,Y,78H = 0111 1000B,右移一位: 0011 1100B=3CH,3C,右移一位: 0001 1110B=1EH,1E,右移一位: 0000 1111B=0FH,0F,2020/6/26,29,7、下列程序段有何功能?,X DB 30

20、0 DUP (?) Y DB 100 DUP (?) MOV CX , 100 MOV BX , 200 MOV SI , 0 MOV DI , SI LOP: SAR AL , XBX+SI MOV YDI , AL INC SI INC DI LOOP LOP,X+200+SI Y+DI 其中,SI、DI同步变化。 程序功能: 将X的后100个字节单元中的数据复制到Y单元中。,2020/6/26,30,8、下列程序段有何功能?如果运行程序时从键盘上输入字符4,则结果是什么?,STR1 DB ABCDEFHI MOV AH , 01H INT 21H AND AL , 0FH DEC AL

21、XOR AH , AH MOV BX , OFFSET STR1 ADD BX , AX MOV DL , BX MOV AH , 02H INT 21H,变量名不能为STR,从键盘输入一个数字字符,并转换为数值,将输入数值减1,并扩展为字数据AX,将BX指向STR1中偏移量为AX的字符,将指定字符显示,若程序运行时,从键盘上输入字符“4”,则在屏幕上会显示字符“D”。,2020/6/26,31,9、已知数据定义为“ WDAT DW 1234H,5678H”,并且SI=2,写出下列指令单独执行后的结果。,(1) MOV AX , WDAT (AX)=1234H (2) MOV AX , WDA

22、T+2 (AX)=5678HH (3)MOV AX , WDAT+SI (AX)=5678HH,2020/6/26,32,11、使用一伪指令语句完成下列要求。,(1) 将数据12H、34H、56H、0ABH依次存放在字节数组ARRAY中。 ARRAY DB 12H , 34H , 56H , 0ABH (2) 在字数组DARRY中依次存放数据1234H、5678H和0ABCDH。 DARRY DW 1234H , 5678H , 0ABCDH (3)将压缩的BCD码1234存放在BCD单元中。 BCD DB 12H , 34H,2020/6/26,33,11、使用一伪指令语句完成下列要求。,(

23、4) 将字符串STRING存放在数组STR1中。 STR1 DB STRING$ (5) 在数据区DATA1中连续存放字节数据12H、34H,字符数据A 、B、C,字数据1234H、5678H、0ABCDH DATA1 DB 12H , 34H DB A , B , C DW 1234H , 5678H , 0ABCDH,2020/6/26,34,12、使用一条指令语句完成下列要求。,(1)将栈顶内容弹至字变量STAK中。 POP STAK (2)将双字变量DVAR存放的地址指针送到ES和SI。 LES SI , DVAR (3)把变量VAR的类型属性送到AX中。 MOV AX , TYPE VAR (4)取字符串变量VSTR的首地址送到AX中。 LEA AX , VSTR,2020/6/26,35,14、设有数据段定义如右,试完成如下要求:,(1)用一条指令将DAT1的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论