Assembly 汇编-如何在这些汇编指令中执行算术?
我想做的是加而不是减,这样得到的差值会比原来的大而不是小 我知道这是一个非常新的问题,我只是刚刚开始尝试学习组装,但答案将帮助我更好地理解Assembly 汇编-如何在这些汇编指令中执行算术?,assembly,Assembly,我想做的是加而不是减,这样得到的差值会比原来的大而不是小 我知道这是一个非常新的问题,我只是刚刚开始尝试学习组装,但答案将帮助我更好地理解 其次,是否可以检查存储的操作数是否小于0,如果小于0,则将其乘以-1?这将确保is总是将较大的操作数复制到内存中,并且不会有较小的操作数(如果某个操作数的值是负数而不是正数)。该片段中的指令执行以下操作: fsubr dword ptr [eax] fst dword ptr [eax] mov [ebp-00000084],00000000 这是一种反向
其次,是否可以检查存储的操作数是否小于0,如果小于0,则将其乘以-1?这将确保is总是将较大的操作数复制到内存中,并且不会有较小的操作数(如果某个操作数的值是负数而不是正数)。该片段中的指令执行以下操作:
fsubr dword ptr [eax]
fst dword ptr [eax]
mov [ebp-00000084],00000000
这是一种反向减法,从eax
寄存器地址的内存中找到的数字中减去浮点堆栈st0
的顶部,然后将结果放回st0
fsubr dword ptr [eax]
将st0
存储到eax
指向的内存地址
fst dword ptr [eax]
这与计算无关
- 如果要进行加法而不是减法,请使用加法操作
fadd
- 如果要比较浮点数,请使用
或特例fcom
ftst0
- 如果要更改符号,请使用
乘以fmul
,或使用特例-1
fchs
文件的说明是丰富的,例如伊利诺伊大学有一份文件。谢谢你的快速反应,我一直在阅读你和其他六个来源一起发送的链接,试图了解更多这方面的信息。它起作用了,改为fadd,我不知道f是什么,但我猜它的意思是浮动。第三行可能不相关,但它确实与正在执行的任务中的其他两行捆绑在一起。。这是它复制旧内存地址的最后一部分。但除此之外,你能详细说明这条线到底在做什么吗,就像你为另外两条线做的一样?编辑:我愿意代表你帮忙,但上面说我需要更多的代表。
mov [ebp-00000084],00000000