0

这段代码应该说五次Hello World !

org 100h

string db 'Hello World',0Dh,0Ah,'$'
mov dx,string
mov bl,0

check:
cmp bl,5
jb print
ja term

print:
mov ah,9
int 21h
mov ah,04Ch
int 21h
inc bl
jmp check

term:
ret

我只得到一个 Hello World 作为输出!我错过了什么吗?

4

1 回答 1

2

打印一次字符串后,您将明确退出程序(通过 INT 21h,AH=4Ch)!

看起来您正在尝试执行“Hello World”字符串,就好像它是代码一样(因为您将它放在操作系统将开始执行程序的地址 100h)。为什么在打印任何内容之前它不会使您的程序崩溃,这一定是纯粹的运气。

于 2012-10-29T10:09:37.893 回答