寻址方式
已知寄存器(DS)=1000H,(SS)=1110H,(BX)=100H,(BP)=100H,(SI)=0002H,(SP)=100H;内存单元中的(10100H)=12H,(10101H)=34H,(10102H)=56H,(10103H)=78H,(11200H)=0ABH,(11201H)=0CDH,(11202H)=0EFH,(11203H)=0D3H。试说明下列各指令执行完后AX寄存器的内容。
指令 AX的内容
① MOV AX,1200H ① 1200H
② MOV AX,BX ② 100H
③ MOV AX,[1200H] ③ CDABH
④ MOV AX,[BP] ④ CDABH
⑤ MOV AX,1100H[BX] ⑤ CDABH
⑥ MOV AX,[BX][SI] ⑥ 7856H
⑦ MOV AX,1100H[BX][SI] ⑦ D3EFH
⑧ POP AX ⑧ CDABH
!# ③MOV AX,[1200H]此时没有特殊声明,默认段地址为DS段,故物理地址=DS*10H+1200H=11200H
AX = CDABH
④MOV AX,[BP] 此时,BP的默认段地址是SS段,故物理地址=SS*10H+BP=11200H AX = CDABH
⑤ MOV AX,1100H[BX] 此时没有特殊声明,默认段地址为DS段,,故物理地址=DS*10H+1100H+BX=11200H
AX = CDABH
⑥ MOV AX,[BX][SI] 此时没有特殊声明,默认段地址为DS段,,故物理地址= DS*10H+100H+0002H = 10102H AX=7856H
⑧ POP AX ,SP默认段地址为SS,故物理地址=SS*10H+SP=11200H AX = CDABH
程序填空
设A,B两个变量都是10字节的无符号数,计算A+B->C1。下面是代码段的内容,请填空。
LEA SI,A
LEA DI,B
LEA BX,C1
MOV CX,10
(1) CLC
L: MOV AL,[SI]
(2) ADC AL,[DI]
MOV [BX],AL
INC SI
INC DI
INC BX
(3) LOOP L
MOV AL,0
(4) ADC AL,0
MOV [BX],AL
MOV AH,4CH
(5) INT 21H
阅读程序
KEY PROC
MOV BX,0
N: MOV AH,1
INT 21H
SUB AL,30H
JL EXIT
CMP AL,7D
JG EXIT
CBW
XCHG AX,BX
MOV CX,8
MUL CX
XCHG AX,BX
ADD BX,AX
JMP N
EXIT: RET
KEY ENDP
从键盘上输入一个多位八进制的数,结果存放在bx中,当输入非数字0至7时,退出程序
待补充。。。