我有一个简单的 asm 文件:
$ cat my.asm
segment .text
global _start
_start:
mov eax,1
mov ebx,5
int 0x80
使用 yasm 组装可以正常工作:
$ yasm -f elf64 -g dwarf2 -l my.lst my.asm
链接返回一些输出:
$ ld -o my my.o
my.o:(.debug_aranges+0x6): relocation truncated to fit: R_X86_64_32 against `.debug_info'
my.o:(.debug_info+0x6): relocation truncated to fit: R_X86_64_32 against `.debug_abbrev'
my.o:(.debug_info+0xc): relocation truncated to fit: R_X86_64_32 against `.debug_line'
但是,不会创建任何可执行文件。
我的环境是:
$ yasm --version
yasm 1.2.0
$ ld --version
GNU ld (GNU Binutils) 2.23.52.20130604
$ uname -a
CYGWIN_NT-6.1 MYHOST 1.7.25(0.270/5/3) 2013-08-31 20:37 x86_64 Cygwin
代码片段和组装/链接步骤来自本书:Introduction to 64bit Intel Assembly Language Programming
任何关于为什么这不起作用的指针将不胜感激。