如何在汇编语言中将2个单词替换为2个单词

时间:2013-12-10 17:39:06

标签: assembly

我多次尝试用汇编语言获取完整的程序:

X = | ((A*B) – (C*D)) | / E

当我将A与B相乘并将结果保存在Ax和Dx中时,我将结果放入Result var后清除Ax和Dx,并将C与D相乘并将结果保存在Ax和Dx中。

我不知道如何用Result var减去Ax,Dx的值,因为它们是2个单词(A * B)sub 2个单词(C * D)

此外,当我想要将它们分开时,它将是1个字(E)上的2个字(A * B-C * D)

请帮助我告诉我如何分成2个单词并将2个单词分成两个单词& 1个字,

谢谢大家

1 个答案:

答案 0 :(得分:2)

使用sbb命令,减去借位。它具有减去其两个操作数(如sub do)的效果,然后如果设置了进位标志则再减去一个操作数。反过来,进位标志应该通过前面从下部寄存器中减去来设置(或不设置)。

sub ax, cx
sbb bx, dx

现在bx:ax有结果。

此外,现代Intel CPU即使在16位模式下也具有32位寄存器和算术运算。但是,汇编程序可能不支持它。