我有一段代码在实模式下运行并在屏幕上打印一条消息,我使用 Dosbox 0.7 作为我的执行环境。下面是代码
jmp 0x7c0:start
start:
mov ax, cs ; set up segments
mov ds, ax
mov es, ax
mov al,03h
mov ah,0
int 10h
welcome db "This is insane now"
mov si, welcome
call print_string
print_string:
lodsb ; grab a byte from SI
or al, al ; logical or AL by itself
jz .done ; if the result is zero, get out
mov ah, 0x0E
int 0x10 ; otherwise, print out the character!
jmp print_string
.done:
ret
我能够很好地组装这段代码,但是当我运行它时,它只是挂在那里并且我可以在 linux 终端中看到一条消息
Illegal read from b0671921, CS:IP 7c0: 4468
这就是我组装它的方式
nasm PRINT.ASM -o out.com
我曾尝试在 google 中搜索此消息,发现这可能是 DOSBox 版本的问题。
谁能让我知道这里可能是什么问题?