第一章,helloos

看到哪里算哪里,windows核心编程看了一部分,不想死记硬背了,突然想继续看看于渊的那本书,下班时玩玩操作系统。

感谢《ORANGE’S:一个操作系统的实现》第一个例子的实现_程序员的蛋疼笔记的博客-CSDN博客_rawrite2

这个是经验总结。首先,按书上敲代码boot.asm

    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 = 串长度
    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进行.asm->.bin->.img

命令是

nasm boot.asm -o boot.bin

nasm -o boot.img boot.asm  

确实有点蛋疼,找了好几个.img和.bin转换的工具,其实没必要。

生成boot.img后,打开虚拟机,发现没软盘。

其实,再往下看,还有个添加(A)按钮。点击后发现软盘,哈哈

创建时

结果就出来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值