我的VirtualBox上的汇编程序有问题。
在VB上,我有Linux Mint(64位)。我试图编译此汇编代码(在文件my_file.asm
中):
extern printf
extern scanf
section .data
format: db "%d",0
napis: db "a/b=%d",10,0
section .bss
a: resd 1
b: resd 1
global main
section .text
main:
mov rdi, format
mov rsi, a
xor rax, rax
call scanf
mov rdi, format
mov rsi, b
xor rax, rax
call scanf
mov eax, [a]
xor edx, edx
div dword[b]
ret
首先输入:nasm -f elf64 myfile.asm
然后输入:gcc myfile.o -o myfile
然后,我收到此错误消息:
“ / usr / bin / ld:plik.o:针对.bss的R_X86_64_32S相对于.bss的重定位无法使用;请使用-fPIC
重新编译
/ usr / bin / ld:最终链接失败:输出中的不可代表部分
collect2:错误:ld返回1退出状态
“
所以我将-no-pie
添加到gcc命令:gcc -o test test.o -no-pie
现在,当我使用./my_file
时出现此错误:Segmentation fault (core dumped)
,我不知道该怎么办。