boot.s进入保护模式

;kernel.s

start:

mov ah,9
mov bh,0
mov al,'o'
mov bl,0x1e
mov cx,10
int 0x10

jmp start




;boot.s

[BITS 16]
jmp start
start:
cli
mov al,1
mov ah,2
mov bx,0x1000
mov es,bx
mov bx,0
mov cx,0x0002
mov dx,0x0
int 0x13
jnc ok_load
die:
jmp die
ok_load:
mov ax,0x1000
mov ds,ax
mov si,0
mov di,0
mov es,di
mov cx,17
cpy:
movsb
dec cx
jcxz cpy_done
jmp cpy
cpy_done: 
mov dx,0
mov ds,dx
lgdt [0x7c00+gdt_48]
mov edx,cr0
or edx,1
mov cr0,edx
jmp dword 0x0008:0
gdt_48:
DW 16
DW gdt+0x7c00,0
gdt:
DW 0,0,0,0
DW 0Xffff
DW 0X0000
DW 0X9e00
DW 0X0000
TIMES 510-($-$$) DB 0
DW 0XAA55


/*a.bxrc*/

floppya:1_44=c.img,status=inserted
boot:floppy


/*makefile*/

all:
nasm -o boot.bin boot.s 
nasm -o kernel.bin kernel.s
dd if=/dev/zero of=c.img count=1
dd if=boot.bin of=c.img  count=1
cat kernel.bin >> c.img
bochs -q -f a.bxrc
clean:
rm -rf boot.bin 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值