专注于操作系统5之引导程序代码

     这里给出一个很简单的引导程序代码,它功能是先显示一段字符,并允许通过键盘输入字符,并显示在屏幕上,还没引导操作系统。这段代码是我看过《自己动手写操作系统》后,根据理解自己写的,在VMware虚拟机机中实现的(因为这段引导程序是以软盘作为引导盘的,而现在的计算机几乎都不用软盘,所以,只能通过虚拟机来实现) 知道16位汇编,知道中断,就非常简单了,这个可看一下王爽老师的《汇编语言》,相当的经典。关于BIOS的中断可查看 BIOS中断大全

    

    


;;nasm 2.07汇编
org 7c00h ;告诉编译器,该程序存放的首地址,因为BIOS是先将引导程序的代码
          ;放到内存地址为7c00h的位置
       

mov ax,cs  
mov es,ax

mov bp,hello    
call display   ;调用显示模块显示“welcome to os”
mov ax,0b800h  ;将显存的段地址存到ds中
mov ds,ax
mov si,0

s:             ;调用16号BIOS中断 处理键盘的输入

  mov [si],al
  mov ah,0h
  int 16h
  inc si
  inc si
jmp s

display:      ;显示字符串“welcome to os”的模块
mov bx,000cH
mov dx,1010H
mov cx,13
mov ah,13h
int 10H
ret

hello: db 'welcome to os'

times 510-($-$$) db 0  ;将512字节大小的剩余部分用0和0aa55h补上,最后两个字节用0aa55h其余部分用0

dw 0aa55h
不要小看了这个程序,那可是没通过其他操作系统运行的。也就是说,你的机子上就算没装任何的操作系统,也能运行,这就是同一般程序的区别。
给个运行后的图片:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值