gpt4 book ai didi

assembly - NASM 引导加载程序的奇怪行为

转载 作者:行者123 更新时间:2023-12-02 21:58:37 25 4
gpt4 key购买 nike

我正在尝试编写一个引导加载程序,但在我发现这个问题之前,我的所有实验都没有成功:Why doesn't this boot loader code work?

我简化了这个程序,只将一个字符写入屏幕。

[ORG 0x7C00]
[BITS 16]

realstart:
jmp start
nop


start:
xor ax,ax
mov ds,ax
mov es,ax
xor bx,bx
mov ah, 0x0e
print:
mov al, "A"
int 0x10
end:
cli
hlt

times 510 - ($-$$) db 0
dw 0xAA55

它编译得很好,但是在 objdump 中没有任何 int 0x10 命令。

如果我留下字符串( this file ),一切正常。

问题在哪里?

(在 Cygwin Win7 SP1 上使用 NASM 2.08.02-1 进行编译)

最佳答案

代码看起来没有什么问题。如果用 ndisasm 反汇编代码会得到缺少 int 0x10 的结果,那将是非常奇怪的。所以我猜你谈论的是在运行时转储代码。引导扇区通常在跳转指令之后包含引导记录(它告诉引导加载程序有关介质的大小等)。也许 BIOS 出于某种原因干扰了它认为的引导记录?

关于assembly - NASM 引导加载程序的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com