为什么这512字节写到u盘引导不起来?

aj3423 2011-04-16 03:34:32
boot.s:

org 07c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $

DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret

BootMessage: db "hello, Os world!"
times 510-($-$$) db 0
dw 0xaa55



代码来自<自己动手写操作系统>, 用
nasm -o boot.bin boot.s
编译成512字节的二进制文件,然后 fdisk -l 命令看到u盘是
Disk /dev/sdb: 32 MB, 32718848 bytes
4 heads, 32 sectors/track, 499 cylinders, total 63904 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb1 * 32 63903 31936 4 FAT16 <32M

之前是用dd命令把.bin写到u盘的:
dd -if=boot.bin of=/dev/sdb1


bios设置好u盘启动后,开机提示 no operating system found,这是咋回事
...全文
225 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
平菓菓 2012-12-12
  • 打赏
  • 举报
回复
不知楼主解决这个问题没有?小弟我也遇到这样的问题,查了很久的资料,包括中英文,都没查到,估计跟BIOS有关。我发现所有U盘,无论可否启动,0扇区的结尾都是55AA
nehc 2011-04-19
  • 打赏
  • 举报
回复
请问LZ的预期结果是什么?

there no OS found !
aj3423 2011-04-19
  • 打赏
  • 举报
回复
预期看到 hello, Os world! 字符串
bios设置从u盘启动时后不是先检查u盘 第511和512字节是不是 55AA么,boot.bin就是这样的阿
aj3423 2011-04-16
  • 打赏
  • 举报
回复
但为什么在bochs中引导这个 boot.bin就能成功?

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧