程序集是否像其他高级语言一样从上到下开始执行?:
我的意思是,这段代码应该挂在第一行:
jmp $
times 510-($-$$) db 0
dw 0xaa55但这并不是因为它被视为引导扇区(最后两行已被执行),这是如何工作的?
发布于 2022-01-14 14:01:51
汇编程序编译工作方式
汇编程序不是“编译”的。如果您要从一种更抽象的编程语言翻译到一种更具体的“编程”语言,您可以说是编译。例如,Java→,另一个Java字节码。
汇编语言→机代码不被认为是“编译”,因为这两种“语言”具有相同的“威力”,两者都能同时描述一个算法。
从上到下开始执行程序集…
当CPU启动或重置时,指令指针被设置为零。但是,作为Michael has already pointed out,在实际执行任何操作之前,BIOS会处理几件事情。
…像其他高级语言一样?
大会不是高级程序集。这里有“高级汇编程序”,但它们本质上有一个更精细的宏扩展系统。
--我的意思是这段代码应该挂在第一行:
至少要做这样的事情:
cli ; clear interrupt: disables all maskable interrupts
stop:
hlt ; halt execution
jmp stop ; in case of a non-maskable interrupt一种更复杂的方法是使用ACPI,但这并不适合3种更高级的LOC。
https://stackoverflow.com/questions/70708379
复制相似问题