我正在阅读一本关于如何构建操作系统的书,我读到了这段代码,所有的代码都是打印你好,但我想知道更多关于无尽跳转的信息:
mov ah,0x0e
mov al,'H'
int 0x10
mov al,'e'
int 0x10
mov al,'l'
int 0x10
mov al,'l'
int 0x10
mov al,'o'
int 0x10
jmp $
times 510-($-$$) db 0
dw 0xaa55
我知道jmp $
会自动跳转。
我真的很想 * 为什么 * 他们在代码中间使用了无限循环。它有什么用???
1条答案
按热度按时间vxf3dgd41#
它的作用和你想的一模一样:它会导致你的程序冻结。它通常发生在你的代码只是把一些东西打印到屏幕上然后结束,并且不需要接受任何额外的输入。因为没有操作系统可以返回,你需要一些方法来“捕获”程序计数器,这是最简单的方法。