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

来源:互联网 发布:dll不兼容windows 编辑:程序博客网 时间:2024/04/29 17:48

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

    

    


;;nasm 2.07汇编
org 7c00h ;告诉编译器,该程序存放的首地址,因为BIOS是先将引导程序的代码          ;放到内存地址为7c00h的位置       mov ax,cs  mov es,axmov bp,hello    call display   ;调用显示模块显示“welcome to os”mov ax,0b800h  ;将显存的段地址存到ds中mov ds,axmov si,0s:             ;调用16号BIOS中断 处理键盘的输入  mov [si],al  mov ah,0h  int 16h  inc si  inc sijmp sdisplay:      ;显示字符串“welcome to os”的模块mov bx,000cHmov dx,1010Hmov cx,13mov ah,13hint 10Hrethello: db 'welcome to os'times 510-($-$$) db 0  ;将512字节大小的剩余部分用0和0aa55h补上,最后两个字节用0aa55h其余部分用0dw 0aa55h
不要小看了这个程序,那可是没通过其他操作系统运行的。也就是说,你的机子上就算没装任何的操作系统,也能运行,这就是同一般程序的区别。
给个运行后的图片:


原创粉丝点击