[ATT汇编]后缀字母:b字节=1字节 w字=2字节 l双字=4字节 q四字=8字节

学习资料

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"b", "s", "w", "l", "q" or "t"to determine what size operand is being manipulated.
ATT汇编语法使用这些字母后缀来表示操作的数据长度

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这个字母的;

你可能感兴趣的:([ATT汇编]后缀字母:b字节=1字节 w字=2字节 l双字=4字节 q四字=8字节)