`
iaiai
  • 浏览: 2196333 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单到引导扇区汇编代码解释

 
阅读更多
org 07c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db “Hello, OS world!”
times 510-($-$$) db 0
dw 0xaa55
这个代码段是存于磁盘引导扇区的系统引导(自举)程序。若存于硬盘第一个扇区,则这段代码称为:硬盘主引导记录;若存于硬盘某个分区的第一个扇区,则称为:分区引导记录;若存于软盘的第一个扇区,则称为:软盘引导记录。称为磁盘引导记录的重要标志是:

dw 0xaa55

磁盘的一个扇区是512字节,标志0xaa55存于这个扇区的最后一个字(两字节,偏移地址为:1FEH),其余空间用于存储指令代码和一些参数、提示信息等。磁盘引导记录由ROM BIOS的INT 19H(引导加载程序,相当于热启动系统,对应的快捷键为:Ctrl+Alt+Del),固定装入内存的0000:7C00H,然后将控制权交给磁盘引导程序,相当于开始执行下面的程序段。下面详细解答一下这个程序段的功能:

org 07c00h ;调整偏移量伪指令ORG,指定下面的指令从7c00h处开始,因为BIOS一旦发现引导扇区,就会将这512字节装载到内存0000:7c00处
mov ax, cs ;数据传送指令,将代码段寄存器cs的内容赋给通用寄存器ax
mov ds, ax ;ax→ds,使数据段与代码段在同一个段
mov es, ax ;ax→es,使附加段与代码段在同一个段
call DispStr ;调用子程序DispStr,显示字符串信息:Hello, OS world!
jmp $ ;$表示当前地址,实现死循环
DispStr: ;子程序:显示字符串
mov ax, BootMessage ;BootMessage的首地址给ax
mov bp, ax ;BootMessage首地址给堆栈指针BP
mov cx, 16 ;要显示的字符数
mov ax, 01301h ;AH=13h,int 10h,即视频中断13h号功能:写字符串;AL=01H,表示写完字符串后,更新光标位置
mov bx, 000ch ;BH=0,页号(视频缓冲区是分页的),初学者暂时不必理会;BL=0CH,字符显示属性,以黑底亮红显示字符
mov dl, 0 ;DH、DL=写串的光标位置,DH=行号,DL=列号
int 10h ;调用视频中断
ret ;子程序返回指令,返回调用者
BootMessage: db “Hello, OS world!” ;要显示的字符串信息
times 510-($-$$) db 0 ;$是当前地址,$$是首地址,总体意思就是从此处一直到510都用0填充
dw 0xaa55 ;磁盘引导记录重要标志 ,最后2个字节代表这是引导扇区。
分享到:
评论

相关推荐

    LinDos引导扇区源代码及软磁盘镜像文件

    本文将深入探讨"LinDos引导扇区源代码及软磁盘镜像文件"的相关知识点,主要包括LinDos项目、汇编语言、8086架构以及如何利用提供的资源进行系统引导。 LinDos,作为标题中的核心概念,是一个早期的Linux启动器,...

    持FAT32和NTFS的引导扇区源码,NASM汇编代码.rar

    引导扇区是计算机启动过程中的关键部分,它包含了一段执行代码,负责加载操作系统到内存并启动系统。本文将深入探讨FAT32和NTFS两种文件系统的引导扇区,以及如何使用NASM汇编语言编写相关的源码。 首先,我们要...

    汇编引导代码

    随着技术的进步,现代操作系统倾向于使用更高级别的语言(如C或C++)来编写引导代码,然后通过工具链将其转换为汇编代码。这种方式提高了代码的可读性和可维护性,但也增加了额外的依赖和复杂性。 总的来说,汇编...

    Mbldr引导程序的反汇编代码

    3. **引导扇区定位**:找到并加载操作系统安装在硬盘上的引导扇区。 4. **内存分配**:为即将加载的操作系统内核分配内存空间。 5. **传递控制**:将控制权交给加载的操作系统,通常通过调用操作系统的入口点完成。 ...

    boot-sector:这是用于操作系统启动的引导扇区汇编代码!

    bios-boot-sector 是 16 位实模式引导扇区代码 目录:boot-sector-pm boot-sector 是 32 位保护模式下的引导扇区代码 用法: nasm [filename] -f bin -o [dest_filename] Eg: nasm boot_helloworld.asm -f bin -...

    恢复DOS引导扇区.zip

    在IT领域,操作系统启动流程是计算机科学中的一个重要概念,尤其涉及到早期个人计算机系统时,DOS(Disk Operating System)引导扇区的恢复至关重要。本文将深入探讨DOS引导扇区的作用、损坏的原因以及如何恢复。 ...

    Windows 7的MBR引导代码分析【汇编】

    MBR中的汇编代码首先执行一些基本的硬件初始化,如设置堆栈指针、检查引导扇区的签名以验证其有效性。接着,代码会查找活动分区,即分区表中标识为活动的分区,以确定操作系统所在的分区。 找到活动分区后,MBR引导...

    主引导记录(MBR)的反汇编分析.doc

    主引导记录(MBR)反汇编分析 一、引言 主引导记录(MBR)是计算机启动过程中的一个关键组件,它负责加载操作系统和管理磁盘分区。...同时,我们也可以了解到MBR反汇编代码的实现机理是基于BIOS中断的。

    绝对扇区读写的汇编源代码.7z

    这篇压缩包"绝对扇区读写的汇编源代码.7z"中包含的文件很可能是用汇编语言编写的一段代码示例,用于演示如何在操作系统下进行绝对扇区读写。汇编语言是一种与机器指令集紧密相关的编程语言,程序员使用它可以直接...

    MASM写的简单引导程序源代码

    在传统的个人计算机系统中,引导程序通常位于磁盘的引导扇区(如MBR或GPT分区表的引导扇区)。在本例中,这是一个简单的引导程序,旨在帮助理解引导过程的基本概念。 **源代码**是程序员用高级语言或汇编语言编写的...

    FAT32的引导扇区分析.pdf

    1. 汇编指令(00~02):用于跳转到引导代码处。 2. 文件系统标志(03~0A):ASCII 码,用于标识文件系统的类型,如“FAT32”。 3. 每扇区字节数(0B~0C):用于指定每个扇区的字节数,常见的值包括 512、1024、2048...

    win98硬盘主引导代码反汇编分析.rar_BIOS_bios 反汇编_mbr_rom bios_硬盘引导

    WIN98SE硬盘主引导记录代码反汇编分析硬盘引导记录MBR(Master Boot Record)是指硬盘之0面0道1扇区之内容,PC及其兼容机之ROM BIOS约定在上电及POST自检成功后,将其从硬盘读出,放置在内存0:7C00处,然后转去该...

    驱动扇区代码, 写自己的操作系统

    - **CPU寄存器**:了解CPU寄存器的功能对于编写有效的汇编代码至关重要。 - **整合所有知识**:通过组合上述概念,可以编写出能够读取硬盘、初始化硬件和显示简单文本消息的引导扇区代码。 ##### 3.4 Hello, World!...

    备份硬盘主引导扇区MBR的源代码.通过BIOSDISK对硬盘主引扇区进行备份

    标题中的“备份硬盘主引导扇区MBR的源代码”是指一种编程实践,旨在保护计算机系统的重要组件——主引导记录(Master Boot Record, MBR)。MBR是硬盘上的第一部分,它包含了启动加载器和分区表,对于系统的正常启动...

    计算机引导代码

    而硬盘则复杂些,因为有多个分区,引导扇区会加载分区表,然后由分区引导扇区加载对应分区的操作系统。在软盘引导扇区中,我们需要编写引导程序,以便BIOS加载后能够执行。 4. 加载操作系统 引导程序必须知道操作...

    1A1展示汇编风采-观察系统启动引导_1A1展示汇编风采-观察系统启动引导_style_

    2. **引导扇区**:操作系统引导扇区,也称为MBR(主引导记录),是硬盘上的第一个扇区。它包含一段小的汇编程序,其任务是加载操作系统的主要部分到内存中。 3. **汇编语言**:汇编语言是人可读的机器代码表示,每...

    引导扇区分析

    本文将对给定的引导扇区代码进行详细的解析,并解释每一行代码的功能及其背后的设计原理。 #### 代码解析 **禁用中断** ``` 07C0:0000FA cli ;禁止中断 ``` 这段代码首先禁用了中断(`cli`),这是为了确保在初始...

    汇编程序与代码块装载

    同时,需要掌握NASM这样的汇编器,它提供了一种将汇编代码转换为机器码的方法。NASM支持许多附加指令,使得编写汇编程序更为便捷。 在低级编程中,I/O操作往往通过调用BIOS中断实现。BIOS是计算机启动时加载的基本...

    x86汇编语言-从实模式到保护模式 mac环境

    6. **MAC环境下的开发工具**:学会在Mac OS中使用命令行工具,如Homebrew来安装和管理开发依赖,以及使用文本编辑器编写汇编代码。 7. **文件系统和磁盘映像**:理解FAT、FAT16、FAT32、NTFS等基本文件系统类型,...

Global site tag (gtag.js) - Google Analytics