[OS64位][002]源码阅读:程序3-1 boot.asm

2019-04-05  本文已影响0人  AkuRinbu

学习笔记

使用教材(配书源码以及使用方法)
《一个64位操作系统的设计与实现》
http://www.ituring.com.cn/book/2450
https://www.jianshu.com/p/28f9713a9171


汇编源码 boot.asm

http://www.ituring.com.cn/book/2450
随书下载-源代码-第二部分-第三章- 程序3-1 boot.asm

源码阅读

代码功能

代码结构

初始化寄存器
清屏
设置光标
显示字符串
软盘驱动器复位
设置主引导扇区最后两个字节为0x55aa

BIOS int 10中断例程, AH 主功能编号

Boot运行效果图 出现字符start Boot表示运行成功

注意高、低位地址的区别

jmp $

StartBootMessage:   db  "Start Boot"

;=======    fill zero until whole sector

    times   510 - ($ - $$)  db  0
    dw  0xaa55

jmp $
times 510-($-$$) db 0
db 0x55,0xaa

完整源码

;/***************************************************
;       版权声明
;
;   本操作系统名为:MINE
;   该操作系统未经授权不得以盈利或非盈利为目的进行开发,
;   只允许个人学习以及公开交流使用
;
;   代码最终所有权及解释权归田宇所有;
;
;   本模块作者:  田宇
;   EMail:      345538255@qq.com
;
;
;***************************************************/

    org 0x7c00  

BaseOfStack equ 0x7c00

Label_Start:

    mov ax, cs
    mov ds, ax
    mov es, ax
    mov ss, ax
    mov sp, BaseOfStack

;=======    clear screen

    mov ax, 0600h
    mov bx, 0700h
    mov cx, 0
    mov dx, 0184fh
    int 10h

;=======    set focus

    mov ax, 0200h
    mov bx, 0000h
    mov dx, 0000h
    int 10h

;=======    display on screen : Start Booting......

    mov ax, 1301h
    mov bx, 000fh
    mov dx, 0000h
    mov cx, 10
    push    ax
    mov ax, ds
    mov es, ax
    pop ax
    mov bp, StartBootMessage
    int 10h

;=======    reset floppy

    xor ah, ah
    xor dl, dl
    int 13h

    jmp $

StartBootMessage:   db  "Start Boot"

;=======    fill zero until whole sector

    times   510 - ($ - $$)  db  0
    dw  0xaa55



参考资料

https://www.jianshu.com/p/1c0bcee05714

[003][x86汇编语言]开发环境配置:检测点4.2 从虚拟硬盘主引导扇区启动 虚拟机 VirtualBox
https://www.jianshu.com/p/9cb95d936451

[Linux]dd 读写软盘:在软盘主引导扇区写入显示hello world的二进制代码数据
https://www.jianshu.com/p/207aaf0f986b

[084][汇编语言]编程:实现从软盘启动进入自己写的超迷你“操作系统”: 显示 hello world!
https://www.jianshu.com/p/2c8ace0ee240

https://blog.csdn.net/hua19880705/article/details/8125706

http://80864beginner.com/8086-Interrupt-List/int-10h-Video-Interrupt.html

http://www.ee.hacettepe.edu.tr/~alkar/ELE336/ele336_2014_week5.pdf

上一篇 下一篇

猜你喜欢

热点阅读