【问题标题】:nasm dos interrupt (output string)nasm dos 中断(输出字符串)
【发布时间】:2014-12-22 23:19:56
【问题描述】:

我有以下代码:

    %include "io.inc"

section .data
msg db 'Hello World...$'

section .text
global CMAIN
CMAIN:
    ;write your code here

     mov ah,09
     mov dx,OFFSET msg
     int 21h
     xor eax, eax
     xor dx,dx
     ret

它得到下一个错误:

[19:28:32] 警告!构建中出现错误: C:/Users/user/AppData/Local/Temp/SASM/program.asm:12:错误:操作数后应有逗号、冒号、装饰符或行尾 gcc.exe:错误:C:/Users/user/AppData/Local/Temp/SASM/program.o:没有这样的文件或目录

有什么问题?我正在使用 sasm ide。

【问题讨论】:

    标签: windows assembly int nasm


    【解决方案1】:

    这是 TASM/MASM 语法:

    mov dx,OFFSET msg
    

    使用 NASM 时,您只需编写:

    mov dx,msg
    

    【讨论】:

    • 现在同一行出现另一个错误:COFF 格式不支持非 32 位重定位
    • 您正在编写实模式 DOS 代码。此类代码必须编译成 DOS EXE 或 COM 文件,并在 DOS 中执行(或可以运行 DOS 可执行文件的东西,如 Windows 9x 或 DOSBox)。我不知道 SASM IDE 使用什么命令来构建。
    猜你喜欢
    • 2018-03-26
    • 2021-08-01
    • 2015-06-12
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    相关资源
    最近更新 更多