匯編是否像其他高級語言一樣從上到下開始執行?:
我的意思是這段代碼應該掛在第一行:
jmp $
times 510-($-$$) db 0
dw 0xaa55
但這不是因為它被視為引導扇區(已執行最后一條拖線),它是如何作業的?
uj5u.com熱心網友回復:
匯編程式編譯的作業原理
匯編程式不是“編譯”的。如果您要從一種更抽象的編程語言轉換為一種更具體的“編程”語言,您就說編譯。例如 Java → Java 位元組碼。
匯編語言→機器代碼不被認為是“編譯”,因為兩種“語言”具有相同的“能力”,都能夠像另一種那樣描述演算法。
匯編是否開始從上到下執行 […]
當 CPU 上電或復位時,指令指標置零。然而,正如邁克爾已經指出的那樣,BIOS 在您實際執行任何操作之前會處理幾件事情。
[...] 像其他高級語言一樣?
匯編不是 HLL。有“高級匯編程式”,但它們本質上具有更精細的宏擴展系統。
我的意思是這段代碼應該掛在第一行:
至少做一些類似的事情:
cli ; clear interrupt: disables all maskable interrupts
stop:
hlt ; halt execution
jmp stop ; in case of a non-maskable interrupt
更復雜的方法是使用 ACPI,但這不適合 3 LOC。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/411261.html
標籤:
