首页 > 解决方案 > 为什么这个汇编语言程序无法在 Windows 7 或 DOSBox 下运行?

问题描述

section .data
    text db "Hello, World!",10

section .text
    global _start

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, text
    mov rdx, 14
    syscall

    mov rax, 60
    mov rdi, 0
    syscall

我正在尝试使用 NASM 运行上述汇编代码。为了做到这一点,我正在关注本教程

但是,它在 Win7 下从 cmd.exe 给出以下错误:

在此处输入图像描述

并且,它从 DOSBox 给出以下错误:

在此处输入图像描述

到底发生了什么?

标签: assemblynasm

解决方案


“系统调用”适用于 Linux。您也使用 64 位寄存器。64 位寄存器不适用于 16/32 位程序。系统调用在 Windows 上不起作用。


推荐阅读