这个用于模拟循环的汇编代码有什么问题?

时间:2012-10-29 09:55:37

标签: assembly x86 dos nasm

这段代码应该说 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作为输出! 我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

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

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