我在mbr扇区写了代码 ,在虚拟机和别人的笔记本启动都可以。显示,但是在我的笔记本上无论如何也不显示hello word,这个会是什么原因?
org 07c00h ;告诉编译器程序加载到 7c00处
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 = BootMessage串长度
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 mbr word!"
times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 0xaa55 ;MBR 硬盘第一启动扇区标志
编译:nasm -f bin hello.s -o hello.bin
写入:dd if=./hello.bin of=/dev/disk2
无法显示笔记本主板环境:
Product Name : Lenouo G480
TOS Version : 62CN41Lu
KBC Version : 62EC39LU
Lenovo SN : xxxxxx
UUID Number : 6FD709C0-42FA-11E2-xxx-C76C5Cxxxx
CPU : Intel (R) Core(T) 15-2450M CPU C 2.50GHz
System Memory : 8192 MR
Hard disk : ST9500325AS 500 GR - (S2)
ODD : TSSTcorp CDDUDW SN-208AB ATAPT - (S5)
显示一个黑框,然后光标在闪烁,U 盘设置了legacy模式是识别到了的
2021/01/06 22:03 晚上我又在一台台式机上面进行了测试也碰到了问题,但是看到光标换行了,感觉是显示了可能没有读出来,任然未知道原因。
太硬核了
。
这和不同的电脑有关吧
谁能指导一下
– 轮子手 2年前