本文主要是介绍大灰狼汇编视频的启动程序编写的笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
主要内容
开发环境搭建
认识引导程序
nasm汇编
编写第一个启动程序
一、开发环境的搭建
我们将使用两种虚拟机Visual PC2004和VMware
Visual PC2004是微软推出的虚拟机软件我们用它来启动我们自己编写的启动程序
VMware虚拟机软件,我们在上面安装Linux。利用nasm汇编器在linux上进行启动程序的编译工作
启动程序演示
让Visual PC打开我们自己编写好的启动盘镜像文件,让虚拟机从我们编写的软盘镜像中启动
二、知识预备
理解计算机加电过程
BIOS对系统内存的分配
认识引导程序的概念
使用nasm进行编译
制作软盘镜像
1.计算机加电过程
当我们按下电源按钮后,计算机是如何从无到有将操作系统运行起来的?
按下开机按钮后,将发送电信号给BIOS
BIOS获得电信号后将启动自检查程序,检查周边设备是否通电完毕
检查完毕后自检程序把控制权交还BIOS,BIOS将读取引导驱动器中的启动程序
2.系统的内存安排
在系统加电时最初的1MB内存是BIOS为我们准备好的,它的分布情况如图
三、认识引导程序
什么样的程序才能成为引导程序?
BIOS将所检查启动磁盘的第一个扇区521字节载入内存,放于内存0x0000:0x07c00处
如果第一扇区最后两个字节是55AA那么它就是一个引导程序
引导程序的特点:
它的大小是512字节,不能多也不能少因为BIOS只读512B到内存中
它结尾必须是55AA,这是引导扇区的标志
它总是放在磁盘第一个扇区上(0磁头0磁道1扇区)因为BIOS只读取第一个扇区
四、nasm汇编
nasm是一个为可移植性与模块化而设计的一个80X86的汇编器。它支持相当多的目标文件格式包括linux和windows
如何用nasm编写一个引导程序?
什么是nasm它和masm有什么区别?
nasm拥有一个相当简单的内存引用规则,是任何对内存中内容的存取操作必须要在地址上加上方括号。但任何对地质值的操作不需要
比如‘mov ax,bar’的指令表示把bar的地址赋给ax寄存器,这相当于masm中mov ax,offset bar要获得bar变量的值mov ax,[bar]
masm mov ax,es:di = nasm mov ax,[es:di]
如何在linux下安装nasm?
如何用nasm编译自己编写的汇编代码?
这篇关于大灰狼汇编视频的启动程序编写的笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!