新手 读linux内核(0.11)

读Linux内核bootsect.s

首先是段的定义的问题,因为我学的是IBM―PC汇编,在格式上有些差别。下面是bootsect.s的开头

.globl begtext, begdata, begbss, endtext, enddata, endbss    ;定义了六个全局标识
.text        ;文本段
begtext:    
.data        ;数据段
begdata:
.bss        ;未初始化的的资料段
begbss:
.text        ;正文的开始

这是Gnu的as86编译的格式的,要理解好,就得弄明白以下的一些:

1.�拟操作符号(pseudo operation,如".text",".globl")语句是编译器使用的指示符号,
编译时不会产生任何代码,它由�拟操作码和0个或多个操作阵列组成,每个操作码都由一个点"."开始

2.编译产生的二进制代码会由".text"段(即正文段)开始存放

3.这里把三个段都定义在同一重叠位址范围中,因此这里实际上不分段



4. 3.5寸1.44M软盘结构

       结构:2面、80道/面、18扇区/道、512字节/扇区
            扇区总数=2面 X  80道/面 X  18扇区/道  =  2880扇区
            存储容量= 512字节/扇区X  2880扇区 =  1440 KB

      2  面: 编号0----1;
             80道: 编号0----79 ;
            18扇区:编号1----18 ;

   软盘中磁道的安排

       相对扇区号:共2880个扇区,相对扇区号范围为 0----2879

编号顺序:
扇区物理号               相对扇区号
0面,0道,1扇区             0
0面,0道,2扇区             1
0面,0道,3扇区             2
…………………….
0面,0道,18扇区           17
1面,0道,1扇区            18
……………
1面,0道,18扇区           35
0面,1道,1扇区            36
0面,1道,18扇区           53
1面,1道,1扇区            54
………

软盘的磁道编排是按照磁道双面编排:0磁道0面->1面,1磁道2面->3面... ...



你可能感兴趣的:(汇编,linux内核,bootsect.s,软盘结构编排,磁盘结构)