我想将bx和cx相乘,但它不像我使用ax
那样有效mov ax,0AFh
mov cx,0AFh
mul cx
我尝试将bx和cx相乘
mov bx,Ah
mov cx,5h
mul cx
"???????"
对于乘以bx和cx,我想我必须使用临时寄存器。谁能告诉我怎么做?
答案 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
中查找结果。