我正在使用 windows 7 来学习汇编语言。我正在使用 NASM 来创建目标文件和 mingw 来创建可执行文件。
我正在使用以下命令编译和运行可执行文件
del hello.o
del hello.exe
nasm -f elf hello.asm
ld hello.o -o hello.exe
hello
运行 hello.exe 文件时,显示“hello.exe 已停止工作”的错误消息
在使用以下命令时
nasm -f bin hello.asm -o program.exe
我有一个错误如下所示
我的程序代码
global _start ; global entry point export for ld
section .text
_start:
; sys_write(stdout, message, length)
mov eax, 4 ; sys_write syscall
mov ebx, 1 ; stdout
mov ecx, message ; message address
mov edx, length ; message string length
int 80h
; sys_exit(return_code)
mov eax, 1 ; sys_exit syscall
mov ebx, 0 ; return 0 (success)
int 80h
section .data
message: db 'Hello, world!',0x0A ; message and newline
length: equ $-message ; NASM definition pseudo-instruction