有关8086汇编语言的一些问题

请问这两道题怎么做,请给出详细的解释
2024-12-02 22:28:15
推荐回答(2个)
回答1:

START:
MOV BX, 1234H ;欲求:DX=12*34=0408H
;用 BH 控制循环,把 BL 内容累加
;----------------------------
MOV DX, 0
MOV CL, BH
AND CL, 0FH ;留下BH的个位
MOV CH, 0
LP1:
MOV AL, DL
ADD AL, BL
DAA
MOV DL, AL
MOV AL, DH
ADC AL, 0
DAA
MOV DH, AL
LOOP LP1
;----------------------------
MOV CL, 4
SHR BH, CL ;右移四位
MOV CL, BH ;留下BH的十位
MOV CH, 0
PUSH CX
MOV CL, 4
SHL BX, CL
AND BX, 0FF0H
POP CX
LP2:
MOV AL, DL
ADD AL, BL
DAA
MOV DL, AL
MOV AL, DH
ADC AL, BH
DAA
MOV DH, AL
LOOP LP2
;----------------------------
;执行到此处,即得出:DX=0408H。

回答2:

用原码进行加减运算,少见!
没有用的,不用理会它。