这段代码非常简单,我在x86_64 linux系统上遇到了一个seg错误.这让我很烦.刚开始使用asm所以请耐心等待!
与NASM组装
nasm -f elf64 test.asm
与连接
ld -o test test.o
SECTION .text
GLOBAL _start
_start:
; print name
mov eax,4 ; sys_write
mov ebx,1 ; stdout
mov ecx,name ; start address of name
mov edx,1 ; length
int 80H ; syscall
; exit program
mov eax,1 ; sys_exit
mov ebx,0 ; success
int 80H ; sys_call
SECTION .data
name DB 'R'
Run Code Online (Sandbox Code Playgroud)
我的机器:Gentoo x86_64 nomultilib!我编译自己的内核没有IA32仿真.我应该声明我的系统是64位系统.这会归因于我收到的错误吗?
$ uname -a
Linux rcepeda 4.4.1-2-ARCH #1 SMP PREEMPT Wed Feb 3 13:12:33 UTC …Run Code Online (Sandbox Code Playgroud) assembly ×1