1 给定(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
2 试根据以下要求写出相应的汇编语言指令 (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 3
3 写出把首地址为BLOCK 的字数组的第6 个字送到DX 寄存器的指令
要求使用以下几种寻址方式: (1) 寄存器间接寻址 (2) 寄存器相对寻址 (3) 基址变址寻址 答:(1