assembly 如何读取/解析汇编?如何知道预处理器执行了哪些指令?

dwbf0jvd  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(109)

我希望能够从上到下阅读它,但似乎nasm有某种类似于CPP的预处理器。
我正在尝试理解的代码:

; Infinite loop (e9 fd ff)
loop:
    jmp loop 

; Fill with 510 zeros minus the size of the previous code
times 510-($-$$) db 0
; Magic number
dw 0xaa55

我很困惑,因为我希望代码永远不会到达底部,在 Boot 扇区的最后一个字设置0xaa55。我希望当它从上到下读取文件时,当它到达loop: jmp loop时,它将永远停留在那里循环,它永远不会到达底部代码。

3j86kqsm

3j86kqsm1#

你的分析是正确的,但是你却被jmp loop卡住了。下面的部分从来就不是为了让CPU实际执行的;它只需要存在于那里,以便硬件BIOS将代码识别为有效的 Boot 扇区并运行它。

相关问题