学习资料
AT&T Assembly Syntax
https://csiflabs.cs.ucdavis.edu/~ssdavis/50/att-syntax.htm
X86 Assembly/GAS Syntax
https://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax
POPF/POPFD/POPFQ — Pop Stack into EFLAGS Register
https://www.felixcloutier.com/x86/popf:popfd:popfq
ATT汇编 后缀字母
b
字节 = 1字节
w
字 = 2字节
l
双字 = 4字节
q
四字 = 8字节
GAS assembly instructions are generally suffixed with the letters
ATT汇编 后缀字母"b", "s", "w", "l", "q" or "t"
to determine what size operand is being manipulated.
ATT汇编语法使用这些字母后缀来表示操作的数据长度
易混淆举例
出栈指令
- 在ATT格式的汇编里,出栈指令是
pop + 后缀字母
比如:popq %rax
同时在Intel格式的汇编里
[010][汇编语言]栈 栈顶SS:IP 出栈pop 入栈push
https://www.jianshu.com/p/4d8ca702549d
特殊出栈 - 填充标志寄存器flags
- 在ATT格式的汇编里,填充标志寄存器flags,用
POPF POPFD POPFQ
填充标志寄存器flags
POPFQ
中的POP
代表出栈,F
表示填充标志寄存器,Q
代表数据长度即四字
同时在Intel格式的汇编里
[056][汇编语言]检测点11.4 pushf 与 popf
https://www.jianshu.com/p/94461cfddbc7
记忆点
- 只要记住
popf
中的f
代表的是标志寄存器flags
,而不是数据长度,ATT
里面的后缀字母列表是没有f
这个字母的;
网友评论