一个汇编写的boot程序

;系统引导程序
;nasm boot.asm -o boot.bin
;反汇编
;ndisasm -o 0x7c00 boot.bin >> disboot.asm
;调试程序
nasm boot.asm -o boot.com

%define    _BOOT_DEBUG_    ;做引导程序将此行注释掉
%ifdef    _BOOT_DEBUG_
org    0100h        ;调试状态做成.com文件   
%else
org    07c00h        ;告诉编译器程序加载到7c00处
%endif
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            ;结束标志

转载于:https://www.cnblogs.com/zuofei123/p/5515496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值