栈指令
指令 | 效果 | 描述 |
---|---|---|
pushq S | %rsp ← %rsp - 8 | 将四字压入栈 |
(%rsp) ← S | ||
popq D | D ← (%rsp) | 将四字弹出栈 |
%rsp ← %rsp + 8 |
需要注意的点
- pushq指令的行为等价于:
subq $8, %rsp
与movq %rbp, (%rsp)
两条指令的合效果。 - popq指令的行为等价于:
movq (%rsp), %rax
与addq $8, %rsp
两条指令的合效果。 - push/pop指令不存在其他后缀。
算数和逻辑指令
指令 | 效果 | 描述 |
---|---|---|
leaq S , D | D ← &S | 加载有效地址 |
inc D | D ← D + 1 | 加一 |
dec D | D ← D - 1 | 减一 |
neg D | D ← -D | 取负 |