.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)一个是数据段ÿ
引导扇区代码注释bootsect.s
最新推荐文章于 2023-04-12 20:21:50 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)