【发布时间】:2011-12-08 21:04:51
【问题描述】:
我正在尝试编写一个引导加载程序,但我的实验都没有奏效,直到我发现了这个问题: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 编译)
【问题讨论】:
-
我正在编译:nasm -O0 -f bin bootLoader.asm -o bootLoader.bin
-
发布 objdump 转储。用 FASM 编译并用 ndisasm 转储,int 10h 就在那里。
-
我已经上传了屏幕截图:s2.photobucket.com/albums/y31/bannyy/NASM%20problem我正在使用 Win7 SP1、Cygwin、NASM。
-
我无法重现这种行为,因为
55 AA放置不正确,似乎有很多事情出错了。你能用给出错误输出的文件来更新你的问题吗? -
好像一点都不对,你用的是最新版吗?
标签: assembly nasm bootloader