gpt4 book ai didi

assembly - 防止 AX 寄存器被 DIV 指令破坏

转载 作者:行者123 更新时间:2023-12-02 08:22:57 24 4
gpt4 key购买 nike

我正在尝试在汇编中解决这些简单的乘法和除法运算。

5*4 + 35/7

我做到了

mov al,5
mov bl,4
mul bl

mov ax,35
mov bl,7
div bl

AX 寄存器中我以前的乘法值被新的除法结果覆盖。我该如何解决这个问题?

最佳答案

My previous value for multiplication in the AX register is overwritten with a new result from division. How do I fix this?

很简单。将乘法的结果放在一个额外的寄存器中(我使用了 DX),计算表达式的下一项,最后将两个结果相加。重要的是要注意商AL寄存器中,所以你需要在做加法之前清除AH寄存器! (示例“35/7”中使用的数字在 AH 中产生余数 0,但当被要求编写程序时,您不应该指望它!)

mov al,5
mov bl,4
mul bl ; -> Result is in AX
mov dx, ax

mov ax,35
mov bl,7
div bl ; -> Result is in AL

mov ah, 0
add ax, dx ; -> Final result is in AX

关于assembly - 防止 AX 寄存器被 DIV 指令破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35098945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com