MOV AX, [2000H+2] MOV ES, AX MOV AX, ES:[BX]
3.7 在0624H单元内有一条二字节JMP SHORT OBJ指令,如其中位移量为(1) 27H,(2) 6BH,(3) 0C6H,试问转向地址OBJ的值是多少? 答:(1) OBJ=0624H+02H+27H=064DH (2) OBJ=0624H+02H+6BH=0691H
(3) OBJ=0624H+02H+0C6H=05ECH ;C6H对应的负数为-3AH(向上转移,负位移量)
3.8 假定(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) 立即方式; 操作数在本条指令中 (2) 寄存器寻址方式; 操作数为 (BX)=0100H (3) 直接寻址方式; PA=20100H (4) 直接寻址方式; PA=20050H
(5) BX寄存器间接寻址方式; PA=20100H (6) 附加段BX寄存器间接寻址方式;
PA=21100H
(7) BP寄存器间接寻址方式; PA=15010H (8) SI寄存器间接寻址方式; PA=200A0H (9) BX寄存器相对寻址方式; PA=20110H (10) BX寄存器相对寻址方式;
PA=20150H
(11) BX和SI寄存器基址变址寻址方式; PA=201A0H (12) BX和SI寄存器相对基址变址寻址方式; PA=201F0H
3.9 在ARRAY数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:
ARRAY DW 23, 36, 2, 100, 32000, 54, 0 ZERO DW ?
(1) 如果BX包含数组ARRAY的初始地址,请编写指令将数据0传送给ZERO单元。
(2) 如果BX包含数据0在数组中的位移量,请编写指令将数据0传送给ZERO单元。
答:(1) MOV AX, [BX+(7-1)*2] MOV [BX+(7)*2], AX (2) MOV AX, ARRAY [BX] MOV ARRAY [BX+2], AX 3.10
如TABLE为数据段中0032单元的符号
名,其中存放的内容为1234H,试问以下两条指令有什么区别?指令执行
完后AX寄存器的内容是什么? MOV AX, TABLE LEA AX, TABLE
答:MOV AX, TABLE是将TABLE单元的内容送到AX,(AX)=1234H LEA AX,TABLE是
将TABLE单元的有效地址送到AX,(AX)=0032H 3.11
执行下列指令后AX寄存器中的内容是什么?
TABLE DW 10, 20, 30, 40, 50 ;000AH, 0014H, 001EH, 0028H, 0032H ENTRY DW 3 ┇
MOV BX, OFFSET TABLE ADD
BX, ENTRY
MOV AX, [BX]
答:(AX)=1E00H (TABLE的存储方式如右图所示) 3.12
下列ASCII码串(包括空格符)依次存储在起始地址为CSTRING的字
节单元中:
CSTRING DB ‘BASED ADDRESSING’
请编写指令将字符串中的第1个和第7个字符传送给DX寄存器。 答:MOV DH, CSTRING
MOV DL, CSTRING+7-1 3.13
已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内
容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。
答:堆栈区和SP的内容变化过程示意图如下左图所示。 3.14
设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如上右图所示。
请写出两条指令把字变量X装入AX寄存器。 答:MOV BX, [2000H] MOV AX, ES:[BX] 3.15
求出以下各十六进制数与十六进制数62A0H之和,并根据结果设
置标志位SF、ZF、CF和OF的值。
(1) 1234H (2) 4321H (3) CFA0H (4) 9D60H 答:(1) 和为74D4H;SF=0,ZF=0,CF=0,OF=0 (2) 和为A5C1H;SF=1,ZF=0,CF=0,OF=1 (3) 和为3240H;SF=0,ZF=0,CF=1,OF=0 (4) 和为0000H;SF=0,ZF=1,CF=1,OF=0 3.16
求出以下各十六进制数与十六进制数4AE0H的差值,并根据结果设
置标志位SF、ZF、CF和OF的值。
(1) 1234H (2) 5D90H (3) 9090H (4) EA04H 答:(1) 差为C754H;SF=1,ZF=0,CF=1,OF=0 (2) 差为12B0H;SF=0,ZF=0,CF=0,OF=0
(3) 差为45B0H;SF=0,ZF=0,CF=0,OF=1 (4) 差为9F24H;SF=1,ZF=0,CF=0,OF=0 3.17
写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16
位带符号数单元的地址。
(1) Z←W+(Z-X) (2) Z←W-(X+6)-(R+9)
(3) Z←(W*X)/(Y+6),R←余数 (4) Z←((W-X)/5*Y)*2 答:(1) MOV AX, Z ;以下程序都未考虑带符号数的溢出 SUB AX, X ADD AX, W MOV Z, AX (2) MOV BX, X ADD BX, 6 MOV CX, R ADD CR, 9 MOV AX, W SUB AX, BX SUB AX, CX MOV Z, AX (3) ADD Y, 6 MOV AX, W IMUL X IDIV Y