Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
根据我所读到的mov,它将第二个参数复制到第一个参数中。那么,这有什么作用呢?
mov
movl 8(%ebp), %edx
它将 edx 中的任何内容复制到函数的第一个参数(因为 +8 的偏移量ebp是一个参数)?
ebp
我觉得这真正意味着将第一个参数移动到edx寄存器中,但我在维基百科上读到它是相反的?
edx
在“AT&T 语法”中;在这种语法中,源在前,目标在后。所以,是的,你的信念是正确的。大多数文档使用“英特尔语法”,它具有相反的顺序。对于 x86 汇编的新手来说,这是一个相当混乱的根源。
在 Intel Syntax 中,您的指令会写成:
mov edx, [ebp + 8]
请注意%寄存器名称前没有,地址使用方括号代替括号,并且l指令中没有后缀。这些都是无用的赠品,可以知道您正在查看哪种形式的组装。
%
l