2013年下半年汇编语言第一次作业).doc
文本预览下载声明
1、以下常用的十进制数转换为二进制数和十六进制数:
3 2 7 6 7 D 2 5 5 D
6 5 5 3 5 D
答32767D 0111111111111111 7FFFH
255D FFH
65535D 1111111111111111 FFFFH
2、回答问题
指令MOV AX,[BX+DI-2]
假设,(DS)=5000H,(BX)=1223H,(DI)=54H,(51275)=54H
(51276)=76H
那么,存取的物理存储单元的地址是多少?
答: 物理地址=50000H+1223H+0054H+FFFEH=51275H
(AX)=7654H
3、假设(SS)=2250H, (SP)=0140H,
如果在堆栈中存入4个数据,则栈顶的物理地址为多少?
如果又从堆栈中取出2个数据,则栈顶的物理地址是多少?
答: (1)立即寻址
(2)寄存器寻址
(3)直接寻址 物理地址=20000+100=20100H
(4)直接寻址 物理地址=20000+0050=20050H
(5)寄存器间接寻址 物理地址=20000+0100=20100H
(6)段跨越前缀的寄存器间接寻址 物理地址=21000+0100=21100H
(7)寄存器间接寻址 物理地址=15000+0010=15010H
(8)寄存器间接寻址 物理地址=20000+00A0=200A0H
(9)寄存器相对寻址 物理地址=20000+0100+10=20110H
(10)寄存器相对寻址 物理地址=20000+0100+0050=20150H
(11)基址加变址寻址 物理地址=20000+0100+00A0=201A0H
(12)相对基址加变址寻址 物理地址=20000+0100+00A0+0050=201F0H
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]
答: 首地址=70B00+DDE6=7E8E6H
末地址=7E8E6+1E=7E904H
5、一个有16个字的的数据区,它的起始地址为:
70B0:DDE6,请写出这个数据区首末字单元的物理地址
答: 未压入数据前的物理地址=22500+0140=22640H
压入4个数据的物理地址=22640-08H=22638H
弹出2个数据的物理地址=22638+4H=2263CH
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
答: AX=240+54=294
7、设当前数据段寄存器的内容为1B00H,在数据段的偏移地址2000H单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列。
答: 因为物理地址=1B000+2000=1D000H
所以 (1D000H)=0FF10H
(1D002H)=8000
显示全部