【发布时间】:2021-04-17 12:29:30
【问题描述】:
为什么会出现错误:
分段错误(核心转储)
这是汇编代码:
.intel_syntax noprefix
.data
message: .asciz "Hello World!\n"
.text
.global main
main:
lea rdi, message
call printf
ret
【问题讨论】:
-
你得到一个段错误,因为 1) 你没有保持堆栈对齐到 16 个字节和 2) 你没有将 AL 寄存器归零以指示没有使用向量寄存器。顺便说一句,较早的版本没有问题#1,这也使#2 无关紧要,因此应该可以工作。
标签: assembly x86-64 calling-convention