我在读一本关于如何构建操作系统的书,我读了这段代码,代码所做的只是打印你好,但我想了解更多关于无限跳转的信息:
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 $
会跳转到它自己。
我真的很想为什么他们在代码中间使用了无限循环。有什么用???
最佳答案
它完全按照您的想法行事:它会导致您的程序卡住。它通常在您的代码仅将某些内容打印到屏幕并结束时完成,并且不需要除此之外的任何其他输入。由于没有可返回的操作系统,您需要一些方法来“捕获”程序计数器,这是最简单的方法。
关于assembly - bootsector编程中无限跳转有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39666602/