码迷,mamicode.com
首页 > 其他好文 > 详细

一个汇编写的boot程序

时间:2016-05-21 21:44:53      阅读:594      评论:0      收藏:0      [点我收藏+]

标签:

;系统引导程序
;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            ;结束标志

一个汇编写的boot程序

标签:

原文地址:http://www.cnblogs.com/zuofei123/p/5515496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!