tôi gặp phải một lỗi trong quá trình chạy của Bộ luật hội sauhội Segmentation Fault
#cpuid using C library Functions
.section .data
output:
.asciz "The Processor Vendor ID is '%s'\n"
.section .bss
.lcomm buffer, 12
.section .text
.globl main
main:
movq $0, %rax
cpuid
movq $buffer, %rdi
movq %rbx, (%rdi)
movq %rdx, (%rdi)
movq %rcx, (%rdi)
pushq $buffer
pushq $output
call printf
addq $8, %rsp
pushq $0
call exit
Nó gặp lỗi phân khúc ở phần C thư viện gọi: Cuộc gọi printf Nó đang chạy trong chế độ x86_64. Bất cứ điều gì tôi đã bỏ lỡ trong quá trình biên dịch mã x64 liên quan đến thư viện c? Hoặc có điều gì đó sai với mã số
Cảm ơn
có thể muốn tăng% RDI bởi một lượng vừa đủ giữa – Managu
Cảm ơn những người của movq tất cả mọi người, tôi đã giải quyết vấn đề. Đó là sai lib mà tôi tải hoạt động tốt sau khi tôi ld nó bằng tay với/lib/ld-linux-x86-64.so.2 và tôi thay thế các chức năng chính với _start. Tôi ld nó là liên kết động. Xin lỗi vì tiếng Anh xấu –