乘以bx和cx [ASM 8086]

时间:2016-10-01 12:10:14

标签: assembly x86 multiplying x86-16

我想将bx和cx相乘,但它不像我使用ax

那样有效
mov ax,0AFh
mov cx,0AFh
mul cx

我尝试将bx和cx相乘

mov bx,Ah
mov cx,5h
mul cx
"???????"

对于乘以bx和cx,我想我必须使用临时寄存器。谁能告诉我怎么做?

1 个答案:

答案 0 :(得分:0)

尝试一下:

mov bx, 0Ah
mov cx, 5h
push ax
mov ax, bx
mul cx
mov bx, ax
pop ax
;at this point, ax is unchanged, result is in bx.

或者,如果你想要花哨,试试这个:

mov bx, 0Ah
mov cx, 5h
xchg ax, bx
mul cx
xchg ax, bx
;at this point, ax is unchanged, result is in bx.

但是,乘以16位寄存器会使其结果为dx:ax。由于您的示例乘以小数字,这并不重要,因为整个结果将适合16位寄存器。但是,请注意,这些代码片段将清除您的dx寄存器,如果您将来会将更大的数字相乘,请务必在dx:bx中查找结果。