引导扇区代码注释bootsect.s

本文深入解析引导扇区代码bootsect.s,主要关注其在ARM架构下的实现。内容涉及嵌入式实时数据库在启动过程中的作用,探讨如何通过bootsect.s来初始化系统并加载后续程序。
摘要由CSDN通过智能技术生成
.globl begtext,begdata,begbss,endtext,enddata,endbss  
.globl用于定义随后的标识符是外部或者全局的,全局标识符,供ld86链使用
.text  //文本段
begtext:
.data  //数据段
begdata:
.bss   //未初始化数据段
begbss:
.text
.text等是伪操作符,告诉编译器产生文本段,.text用于标识文本段的开始位置。
此处的.text、.data、.bss表明这3个段重叠,不分段!

entry start //关键字entry告诉链接器“程序入口”
start:
   mov ax, #BOOTSEG 
   (BOOTSEG = 0x07c0 赋值给ax,0x07c0是 original address of boot-sector
    BIOS加载bootsect代码的原始段地址
    AX是CPU内部的通用寄存器中的数据寄存器。
    数据寄存器用来存放参与运算的数据或是存储运算的结果。这四个数据寄存器都是16位的,实际由两个            
    8位寄存器组合而成,这是为了灵活处理8位数据。每个寄存器可以将高8位、低8位分别作为独立的8位寄存器使用。其中的高8位用AH、BH、CH、DH表示,低8位用AL、BL、CL、DL表示。)
   mov ds, ax
(CPU要读读写一个内存单元的时候, 必须先给出这个内存单元的地址,在8086PC中,
内存地址由段地址和偏移地址组成, 8086CPU中有一个DS寄存器,通常用来存放将要
访问数据的段地址 )
   mov ax, #INITSEG 
( INITSEG  = 0x9000
we move boot here - out of the way
!将bootsect移动到这里)
   mov es, ax
(ds和es(Extra SEgment)一个是数据段ÿ
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值