(装配32位)不能使用没有括号的lea?

时间:2015-02-08 03:59:24

标签: assembly x86 fasm

据我所知,我还没有看到有人接触到这个,所以我使用的是扁平的汇编程序,如果我尝试做这样的事情" lea eax,测试&#34 ;它不会起作用,但如果我这样做的话,那就是“测试”,“测试”和#34;有用? 我遇到很多例子,我看到人们能够在没有括号的情况下做到这一点,但我不知道是否可以在平面汇编器上做,因为我一直得到错误无效的操作数,也&# 34;测试"是一个dd(双字)。

最后一件事,测试和移动eax,测试在我的平板汇编程序中是等效的。我用ollydbg调试器测试了eax寄存器,在两种情况下eax等于地址00401006.所以在这种情况下它们是等同的正确吗?

1 个答案:

答案 0 :(得分:1)

因为LEA就像"&"在C中,它期望您将变量传递给它,而不是该变量的地址。在FASM中,当你写" [a]"时,你正在考虑变量' a'当你只是写" a"时,你正在苦苦挣扎到它的地址。所以," lea eax,[a]"和" mov eax,a"意思是完全一样的。我希望这会有所帮助。