我想用 16 位程序集(winasm IDE 和 masm)打印简单的hello world ,但在显示“hello world”未知字符之前。这是代码:
.MODEL small
.STACK 100h
.data
message db "Hello, world!$"
.code
_start:
mov ah,9
lea dx,message ; addr of buffer
int 21h
mov ah,1
int 21h
END _start
我不太确定 MASM 语法,但您必须使用以下内容设置 DS 寄存器:
mov ax, @data ; if the .data labels points to your data segment
mov ds, ax
; then your code
mov ah, 9 ..........
在执行任何代码之前,您必须将 CS 移动到 DS 中。
.code
start:
push cs ; <-- important!
pop ds ; <-- important!
; -- your codes here --
mov eax, 9h
...
mov ax, 4C00h
int 21h
end start