汇编程序编译是如何工作的
how assembly programme compilation works
汇编是否像其他高级语言一样从上到下开始执行?:
我的意思是这段代码应该挂在第一行:
jmp $
times 510-($-$$) db 0
dw 0xaa55
但这并不是因为它被视为引导扇区(最后两行已被执行),
这是如何运作的?
how assembly programme compilation works
汇编程序没有被“编译”。你说 compilation 如果你从 more abstract 编程语言翻译成更具体的“编程”语。
例如 Java → Java 字节码。
汇编语言→机器代码不被视为“编译”,因为这两种“语言”具有相同的“能力”,在描述算法方面的能力与另一种一样。
does assembly start executing from top to bottom […]
当CPU上电或复位时,指令指针置零。
但是,作为 ,BIOS 会在您实际执行任何操作之前处理几件事。
[…] like other high level languages ?
程序集不是 HLL。
有“高级汇编器”,但这些本质上有更复杂的宏扩展系统。
I mean this code should hang on the first line :
至少做这样的事情:
cli ; clear interrupt: disables all maskable interrupts
stop:
hlt ; halt execution
jmp stop ; in case of a non-maskable interrupt
更复杂的方法是使用 ACPI,但这不适合 3 LOC。
汇编是否像其他高级语言一样从上到下开始执行?:
我的意思是这段代码应该挂在第一行:
jmp $
times 510-($-$$) db 0
dw 0xaa55
但这并不是因为它被视为引导扇区(最后两行已被执行), 这是如何运作的?
how assembly programme compilation works
汇编程序没有被“编译”。你说 compilation 如果你从 more abstract 编程语言翻译成更具体的“编程”语。 例如 Java → Java 字节码。
汇编语言→机器代码不被视为“编译”,因为这两种“语言”具有相同的“能力”,在描述算法方面的能力与另一种一样。
does assembly start executing from top to bottom […]
当CPU上电或复位时,指令指针置零。
但是,作为
[…] like other high level languages ?
程序集不是 HLL。 有“高级汇编器”,但这些本质上有更复杂的宏扩展系统。
I mean this code should hang on the first line :
至少做这样的事情:
cli ; clear interrupt: disables all maskable interrupts
stop:
hlt ; halt execution
jmp stop ; in case of a non-maskable interrupt
更复杂的方法是使用 ACPI,但这不适合 3 LOC。