【发布时间】:2012-05-07 06:45:33
【问题描述】:
我正在使用 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
【问题讨论】: