【发布时间】:2012-10-22 02:59:23
【问题描述】:
我有用 32 位汇编语言编写的程序...现在我无法在 64 位操作系统上编译它。在我们学校,它们是特定的,程序必须以 32 位版本编写。这是我的程序:
bits 32
extern _printf
global _start
section .data
message db "Hello world!!", 10, 0
section .text
_start:
pushad
push dword message
call _printf
add esp, 4
popad
ret
有什么想法吗?我已经尝试了很多方法来编译它。 编译后的错误输出:
nasm -f elf64 vaja4.asm
ld vaja4.o -o vaja4
./vaja4
输出:
vaja4.o: In function `_start':
vaja4.asm:(.text+0x7): undefined reference to `_printf'
【问题讨论】:
-
不应该是 printf 而不是 _printf 吗?
-
同样的错误:vaja4.o: In function
start': vaja4.asm:(.text+0x7): undefined reference toprintf'
标签: linux ubuntu assembly 64-bit 32-bit