リアルモードで実行され、画面にメッセージを出力するコードがあります。実行環境として 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 のバージョンに問題がある可能性があることがわかりました。
ここで何が問題なのか誰か教えてもらえますか??