汇编语言第一次作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:薛锦利
学号:14710074
汇编语言第一次作业
1、以下常用的十进制数转换为二进制数和十六进制数:
3 2 7 6 7 D 2 5 5 D
6 5 5 3 5 D
答:
32767 D=111111********* B =7FFF H
255 D=11111111 B =00FF H
65535 D=1111111111111111 B =FFFF H
2、回答问题
指令MOV AX,[BX+DI-2]
假设,(DS)=5000H,(BX)=1223H,(DI)=54H,(51275)=54H (51276)=76H
那么,存取的物理存储单元的地址是多少?
答:(AX)=7654H
3、假设(SS)=2250H,(SP)=0140H,
如果在堆栈中存入4个数据,则栈顶的物理地址为多少?
如果又从堆栈中取出2个数据,则栈顶的物理地址是多少?
答:
如果在堆栈中存入4个数据,则栈顶的物理地址为22640H;
如果又从堆栈中取出2个数据,则栈顶的物理地址是22638H。
4、假设(DS)=2000H, (ES)=2100H, (SS)=1500H, (SI)=00A0H,
(BX)=0100H(BP)=0010H,数据段中变量名VAL的偏移地址值为0050H, 试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?
(1) MOV AX, 0ABH
(2) MOV AX, BX
(3) MOV AX, [100H]
(4) MOV AX, VAL
(5) MOV AX, [BX]
(6) MOV AX, ES:[BX]
(7) MOV AX, [BP]
(8) MOV AX, [SI]
(9) MOV AX, [BX+10]
(10) MOV AX,VAL[BX]
(11) MOV AX, [BX][SI]
(12) MOV AX, VAL[BX][SI]
答:
1、Mov ax,0ABH 立即寻。没有物理地址
2、Mov ax,bx 寄存器寻,没有物理地址,ax=0100H
3、Mov ax,[100H] 直接寻物理地址=20000H+100H=20100H
4、Mov ax,VAL 直接寻物理地址=20000H+0050H=20050H
5、Mov ax,[bx] 寄存器间接寻物理地址
=20000H+0100H=20100H
6、Mov ax,ES:[bx] 寄存器间接寻物理地址=21000H+0100H=21100H
7、Mov ax,[BP] 寄存器间接寻段是SS 物理地址
=15000H+0010H=15010H
8、Mov ax,[SI] 寄存器间接寻物理地址
=20000H+00A0H=200A0H
9、Mov ax,[Bx+10] 寄存器相对寻物理地址=20000H+0100H+10=20110H
10、mov ax,VAL[Bx] 寄存器相对寻物理地址
=20000H+0050H+0100H=20150H
11、mov ax,[bx][SI] 基址加变址寻物理地址
=20000H+0100H+00A0H=201A0H
12、mov ax,VAL[bx][SI] 相对基址加变址物理地址
=20000H+0100H+00A0H+0050H=201F0H
5、一个有16个字的的数据区,它的起始地址为:
70B0:DDE6,请写出这个数据区首末字单元的物理地址
答:
70B0H*16+0DDE6H=7E8E6H
7E8E6H+(10H-1)=7E814H
6、试分析下列程序段执行完后,A单元的内容是多少?
Data segment
A dw 0
B dw 0
C dw 240, 20, 54
Data ends
Code segment
…
MOV BX, OFFSET C
MOV AX, [ BX ]
MOV B, AX
MOV AX,2[ BX ]
ADD AX, B
…
Code ends
答:
(1)10
(2)0
(4)260
(5)50
7、设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列。
答:
MOV BX, [2000H]
MOV AX, [2000H+2]
MOV ES, AX
MOV AX, ES:[BX]
8、执行下列指令序列后,AX寄存器中的内容是什么?
TABLE DW 10,20,30,40,50
RETURN DW 3
…
MOV BX,OFFSET TABLE
ADD BX,RETURN
MOV AX,[BX]
答:
1E00
9、指出下列指令的错误:
MOV AH,BX ; MOV [BX],[SI]
MOV AX,[ SI ][ DI ] ; MOV CS,AX
CMP 15,BX ; CMP OP1,OP2 (OP1,OP2是已定义的字节变量)PUSH BL ; CMP AX,OP1
POP CS; MOV BYTE PTR[BX], 1000
答:
(1)分辨是单操作数还是双操作数;
(2)如果是双操作数,那么它是根据什么寻址方式;
(3)双操作数的目的操作数不能是立即数;
(4)两个操作数中必须有一个是寄存器(除了立即寻以外);
(5)双操作数中,代码段CS不能做目的操作数;
(6)最后检查两个操作数的类型是否匹配;
(7)如果是单操作数,栈操作都是以字为单位(16位寄存器和16位地址);(8)单操作数中,代码段CS不能做目的操作数;
10、在TABLE数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下: