WM13 2014-12-21 04:07 采纳率: 100%
浏览 790
已结题

用汇编自制mbr引导程序的问题

以下是网上十分流行的mbr代码:
org 7c00h
mov ax, cs

mov ds, ax

mov es, ax

call DispStr ; 调用显示字符串例程

jmp $ ; 无限循环

DispStr:

mov ax, BootMessage

mov bp, ax ; es:bp = 串地址

mov cx, 16 ; cx = 串长度

mov ax, 01301h ; ah = 13, al = 01h

mov bx, 000Ch ; 页号为0(bh = 0) 黑底红字 (bl = 0Ch,高亮)

mov dl, 0

int 10h ; 10h号中断

ret

BootMessage: db "Hello,OS world!"

times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节

dw 0xaa55 ; 结束标志

我用nasm编译成bin,再用UltraISO制成iso文件,最后用vm引导,发现显示不了字符串,
后来发现问题出在org 7c00h这里 把这句去掉即可显示正常,那么问题来了,软件是否会自动修正引用,导致引用异常?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?