assembly 如何在汇编x86中进行减法?[重复]

klsxnrf1  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(62)

此问题在此处已有答案

Adding 2 numbers in assembly x86(1个答案)
23天前关闭
我试过这个代码从num2.Can subsequentnum2告诉我如何修复?

.minus:
                mov eax, [num1]
                sub eax, 0
                mov ebx, [num2]
                sub ebx, 0
                sub eax, ebx
                sub eax, 0
                mov [num3], eax
                jmp .resultat

字符串
我本来想从2号那里得到2号的。

hzbexzde

hzbexzde1#

我很惊讶今天看到你的问题,考虑到我为你的previous question提供的答案。
您没有应用正确的转换(正如您已经被告知的那样):

  • 从字符到数字,减去48,可以写成sub eax,'0'
  • 从数字到字符,加上48,可以写成add eax,'0'

我本想从num 2中删除num 2
如果你真的想从num2中减去num2,那么就不用费心编写代码来计算它了。只需在结果中存储一个'0'字符:

mov  dword [num3], '0'

字符串
另一方面,如果代码片段显示了您想要计算的内容,则将其更正为:

movzx eax, byte [num1]
sub   eax, '0'
movzx ebx, byte [num2]
sub   ebx, '0'
sub   eax, ebx
add   eax, '0'
mov   [num3], eax


例如,编号1 == '8',编号2 == '5' ->编号3 == '3'
如果num 2大于num 1,不要指望它能工作!

相关问题