我正在尝试将汇编代码写入 mbr 以使用 BIOS ISR。我将以下代码写入 mbr,期望将字符“ABCD”打印在屏幕上:
mov ah,0x0e
mov bp,0x8000
mov sp,bp
push 'A'
push 'B'
push 'C'
push 'D'
mov al, [0x7ffe]
int 0x10
mov al, [0x7ffc]
int 0x10
mov al, [0x7ffa]
int 0x10
mov al, [0x7ff8]
int 0x10
; infinite loop
jmp $
; padding 0s and set the magic number to make it bootable
times 510 -( $ - $$ ) db 0
dw 0xaa55
这些代码在 bochs 或 qemu 模拟器上运行良好,但是当我写入我的真实磁盘并使用它启动时,什么都没有打印。我已经测试直接将 %al 寄存器设置为 chars ,并且打印效果很好。我正在使用 AMD PhenomII 955 处理器,我做错了什么吗?