给定(BX)=637DH,(SI)=2A9BH,位移量 D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1) 立即寻址(2) 直接寻址(3) 使用 BX 的寄存器寻址(4) 使用 BX 的简接寻址(5) 使用 BX 的寄存器相对寻址(6) 基址变址寻址(7) 相对基址变址寻址答:(1) 操作数在指令中,即立即数;(2) EA=D=7237H;(3) 无 EA,操作数为(BX)=637DH;(4) EA=(BX)=637DH;(5) EA=(BX)+D=0D5B4H;(6) EA=(BX)+(SI)=8E18H;(7) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此 EA=004FH。 试根据以下要求写出相应的汇编语言指令(1) 把 BX 寄存器和 DX 寄存器的内容相加,结果存入 DX 寄存器中。(2) 用寄存器 BX 和 SI 的基址变址寻址方式把存储器中的一个字节与 AL 寄存器的内容相加,并把结果送到 AL 寄存器中。(3) 用寄存器 BX 和位移量 0B2H 的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。(4) 用位移量为 0524H 的直接寻址方式把存储器中的一个字与数 2A59H 相加,并把结果送回存储单元中。(5) 把数 0B5H 与(AL)相加,并把结果送回 AL 中。答:(1) ADD DX, BX(2) ADD AL, [BX][SI](3) ADD [BX+0B2H], CX(4) ADD WORD PTR [0524H], 2A59H(5) ADD AL, 0B5H 写出把首地址为 BLOCK 的字数组的第 6 个字送到 DX 寄存器的指令。要求使用以下几种寻址方式:(1) 寄存器间接寻址(2) 寄存器相对寻址(3) 基址变址寻址答:(1) MOV BX, OFFSET BLOCKADD BX, (6–1)*2MOV DX, [BX](2) MOV BX, OFFSET BLOCK 改为: MOV BX, (6-1)*2MOV DX, [BX+(6–1)*2] 也可 MOV DX, BLOCK[BX](3) MOV BX, OFFSET BLOCKMOV SI, (6–1)*2MOV DX, [BX][SI] 现 有 (DS)=2000H , (BX)=0100H , (SI)=0002H , (20250H)=12H , (20251H)=34H ,(20252H)=56H , (20253H)=78H , (21200H)=2AH , (21201H)=4CH , (21202H)=B7H ,(21203H)=65H,试说明下列各条指令执行完后 AX 寄存器的内容。(1) MOV AX, 1200H(2) MOV AX, BX(3) MOV AX, [1200H](4) MOV AX, [BX](5) MOV AX, 1100[BX](6) MOV AX, [BX][SI](7) MOV AX, 1100[BX][SI]答:(1) (AX)=1200H(2) (AX)=0100H(3) (AX)=4C2AH(4) (AX)=3412H(5) (AX)=4C2AH(6) (AX)=7856H(7) (AX)=65B7H 给 定 (IP)=2BC0H , (CS)=0200H , ...