操作系统实现---boot启动并读软盘

发表于:2013-12-11 10:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zhi_jian    来源:51Testing软件测试网采编

  参照《linux完全剖析》一文中的程序自己写了
  如下两个简单的程序:
  boot.s
;这个程序将软驱的第二个扇区中的内容(kernel)读到
;内存0x1000:0000的位置然后跳转到该处执行
;
;
;
org 07c00h
jmp start
msg:
db "Now,begin to load kernel....",0ah
msgLen equ $-msg
start:
mov ax,cs
mov ds,ax
mov es,ax
mov ax,msg
mov bp,ax
mov cx,msgLen
mov ax,01301h
mov bx,000ch
mov dl,0
int 10h
load:
mov dx,0x0000 ;dh->磁头号,dl->驱动器号
mov ax,0x1000
mov es,ax
xor bx,bx ;es:bx->the data   0x1000:0000
mov ch,0 ;ch->磁道号
mov cl,2 ;cl->起始扇区号
mov ah,02h ;param
mov al,01h ;how many blocks to read
int 13h
sys: ;jmp to the kernel
jmp 0x1000:0
times 510 -($-$$) db 0
dw 0xaa55
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号