MBR程序

作者: 写个代码容易么 | 来源:发表于2020-02-05 12:51 被阅读0次
org 0x7C00    ;主引导记录的内存地址
jmp entry

;入口
entry:
  ;清空四个寄存器的值
  mov ax, 0     ;ax 通用寄存器 eax的低16位
  mov ds, ax    ;data segment 数据段寄存器
  mov ss, ax   ;stack segment 堆栈段寄存器
  mov es, ax   ;extra segment 附加段寄存器

  ;将msg地址赋给si
  mov si, msg    ;源变址寄存器

;循环遍历字符串msg的值,遇到0x00后直接跳到fin代码块,结束执行
foreachMsg:
  mov al, [si]    ;等同 mov al, byte [si]  将si地址开始的一个字节的值放入al中
  inc si          ;si = si+1
  
  cmp al, 0x00    ;al与0比较
  je fin          ;如上面比较相等 则跳转到fin 不相等则不跳转,执行后面命令
  
  mov ah, 0x0e
  int 0x10        ;BIOS中断,10:在当前光标处显示字符
  
  jmp foreachMsg
  
fin:
  HLT  ;HLT指令用于使CPU进入HALT状态
  jmp fin

msg:
  DB 0x0a,0x0a
  DB "This is a MBR program, not an OS!"
  
  times 510-($-$$) db 0;填充510字节的0,$$表示编译后的起始地址
  dw 0xaa55 ;MBR结束标记0x55aa小端显示 加上前面的510字节正好512字节满足条件

程序测试

将汇编源码生成bin文件,然后将bin文件烧写到磁盘镜像文件中

nasm mbr.s -o mbr.bin && dd if=mbr.bin of=mbr.img bs=512 count=1

bochs配置

memory: guest=30, host=30
romimage:file=$BXSHARE/BIOS-bochs-latest
vgaromimage:file=$BXSHARE/VGABIOS-lgpl-latest
floppya:1_44=mbr.img,status=inserted
boot:floppy
log:bochsout-mbr.log
mouse:enabled=0

相关文档

汇编指令表 https://wenku.baidu.com/view/dc8148dc195f312b3169a5ad.html
寄存器表 https://blog.csdn.net/qq_25827741/article/details/71429979
INT10中断表 https://blog.csdn.net/qq_40818798/article/details/83933827
MBR格式 https://blog.csdn.net/welldoneyb/article/details/5971225

相关文章

  • MBR程序

    程序测试 将汇编源码生成bin文件,然后将bin文件烧写到磁盘镜像文件中 bochs配置 相关文档 汇编指令表 ...

  • MBR GPT

    1.MBR 1.1 MBR的组成 一个扇区的硬盘主引导记录MBR由4个部分组成。 主引导程序(偏移地址0000H-...

  • 程序整体流程

    计算机上电复位,BIOS自检,然后加载MBR到内存0x7c00,跳转到MBR中执行,MBR引导程序查看各分区表项的...

  • 不同系统的引导程序

    引导程序 引导方式 UEFI原理 不同操作系统的引导方式(即写入的mbr) windows启动(MBR模式,EFI...

  • 7-4 汇编学习笔记(3)

    2)准备加载用户程序 我们将主引导扇区程序定义成一个段 SECTION mbr align = 16 vstar...

  • 系统启动过程

    PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OS BootLoader(比如,L...

  • 开机流程

    涉及的硬件与程序如下:硬件:cpu、内存、硬盘程序:BIOS、mbr、内核 开机 cpu通电后第一时间读取BIOS...

  • MBR与GPT分区简述

    MBR 主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区。MBR下的硬盘分区有三...

  • IA-32保护模式下多任务切换的编码实现和分析(一)

    内核加载程序(写在MBR上的引导程序) boot.s 从BISO启动原理浅析 当按下开机按键,计算机会做哪些事呢?...

  • 修复磁盘MBR分区

    MBR

网友评论

      本文标题:MBR程序

      本文链接:https://www.haomeiwen.com/subject/kpfsxhtx.html