精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>○ DOS>>系统资料>>硬盘主引导记录(Dos 6.22)程序注释清单

主题:硬盘主引导记录(Dos 6.22)程序注释清单
发信人: twotiger()
整理人: sle(2000-04-08 08:37:31), 站内信件
这是我读书时的作业,我看这里很多人都在研究这些东西,就拿出来献丑了 


所用微机硬盘主引导记录(Dos 6.22)

(一) 读出硬盘主引导记录
-a
2476:0100 B80102        MOV AX,0201                            
2476:0103 BB0002        MOV BX,0200                            
2476:0106 B90100        MOV CX,0001                            
2476:0109 BA8000        MOV DX,0080                            
2476:010C CD13          INT 13                                 
2476:010E CD20          INT 20                                 
-g
Program terminated normally
//*************************

(二) 硬盘主引导记录注释清单
-u es:0200 0289
2476:0200 FA            CLI               ;中断屏蔽                  

2476:0201 33C0          XOR AX,AX                              
2476:0203 8ED0          MOV SS,AX         ;SS = 0                     
 
2476:0205 BC007C        MOV SP,7C00       ;设置堆栈指针 ss:sp = 0:7c00
                     
2476:0208 8BF4          MOV SI,SP                              
2476:020A 50            PUSH AX                                 
2476:020B 07            POP ES            ;ES = 0                     
  
2476:020C 50            PUSH AX                                 
2476:020D 1F            POP DS            ;DS = 0                    

2476:020E FB            STI               ;开中断                     

2476:020F FC            CLD               ;正方向传递                 
    
2476:0210 BF0006        MOV DI,0600       ;将主引导区记录从           
           
2476:0213 B90001        MOV CX,0100        ;0:7c00-7dffH 搬至
2476:0216 F2            REPNZ                ;0:0600-07ffH            
         
2476:0217 A5            MOVSW                                    
2476:0218 EA1D060000    JMP 0000:061D     ;从061d继续执行             
        
2476:021D BEBE07        MOV SI,07BE       ;第一个分区表指针-->SI      
               
2476:0220 B304          MOV BL,04                           
2476:0222 803C80        CMP BYTE PTR [SI],80                   
2476:0225 740E          JZ 0235           ;是主引导分区               
     
2476:0227 803C00        CMP BYTE PTR [SI],00                   
2476:022A 751C          JNZ 0248           ;是否错误自举标志          
          
2476:022C 83C610        ADD SI,+10         ;不是,检查下一个分区       
             
2476:022F FECB          DEC BL                                 
2476:0231 75EF          JNZ 0222                               
2476:0233 CD18          INT 18             ;没有可自举分区,引导Rom Bas
ic                    
2476:0235 8B14          MOV DX,[SI]        ;DH = 磁头号 DL = 驱动号 
2476:0237 8B4C02        MOV CX,[SI+02]     ;CX = 柱号,首扇区号        
           
2476:023A 8BEE          MOV BP,SI                              
2476:023C 83C610        ADD SI,+10                             
2476:023F FECB          DEC BL                                 
2476:0241 741A          JZ 025D                               
2476:0243 803C00        CMP BYTE PTR [SI],00                   
2476:0246 74F4          JZ 023C          ;是否错误自举标志            
        
2476:0248 BE8B06        MOV SI,068B        ;"Invalia partition Table" 
-->

2476:024B AC            LODSB               ; 错误信息输出子程序      
          
2476:024C 3C00          CMP AL,00          ;   if end of display ,jmp 
025b                  
2476:024E 740B          JZ 025B           ;                     
2476:0250 56            PUSH SI             ;                     
2476:0251 BB0700        MOV BX,0007        ;                     
2476:0254 B40E          MOV AH,0E          ;                     
2476:0256 CD10          INT 10             ;                     
2476:0258 5E            POP SI             ;                     
2476:0259 EBF0          JMP 024B           ;                     
2476:025B EBFE          JMP 025B          ;死循环                     


2476:025D BF0500        MOV DI,0005       ;试读5次                    
 
2476:0260 BB007C        MOV BX,7C00                            
2476:0263 B80102        MOV AX,0201                            
2476:0266 57            PUSH DI                                 
2476:0267 CD13          INT 13            ;读出活动分BOOT程序         
            
2476:0269 5F            POP DI               ;到0:7c00处              
    
2476:026A 730C          JNB 0278          ;如正确,转 0278             
        
2476:026C 33C0          XOR AX,AX                              
2476:026E CD13          INT 13            ;失败,硬盘复位              
       
2476:0270 4F            DEC DI                                 
2476:0271 75ED          JNZ 0260          ;未够5次,再试               
      
2476:0273 BEA306        MOV SI,06A3       ; "Error loading  
2476:0276 EBD3          JMP 024B           ;operating system" -->SI   
                
2476:0278 BEC206        MOV SI,06C2                            
2476:027B BFFE7D        MOV DI,7DFE                            
2476:027E 813D55AA      CMP WORD PTR [DI],AA55 ;引导模块最后字是否为AA
55H 
2476:0282 75C7          JNZ 024B          ; "Missing operating        
             
2476:0284 8BF5          MOV SI,BP          ;  system" -->SI           
                           
2476:0286 EA007C0000    JMP 0000:7C00     ;转执行BOOT程序             
       
//*************************

(三) 硬盘主引导记录数据区 
-d es:028a 03ff

2476:0280                                   49 6E 76 61 6C   U.u.....|
..Inval
2476:0290  69 64 20 70 61 72 74 69-74 69 6F 6E 20 74 61 62   id partit
ion tab
2476:02A0  6C 65 00 45 72 72 6F 72-20 6C 6F 61 64 69 6E 67   le.Error 
loading
2476:02B0  20 6F 70 65 72 61 74 69-6E 67 20 73 79 73 74 65    operatin
g syste
2476:02C0  6D 00 4D 69 73 73 69 6E-67 20 6F 70 65 72 61 74   m.Missing
 operat
2476:02D0  69 6E 67 20 73 79 73 74-65 6D 00 00 80 47 20 10   ing syste
m...G .
2476:02E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:02F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0300  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0310  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0320  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0330  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0340  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0350  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0360  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0370  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0380  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:0390  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:03A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:03B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00         .........
..

硬盘分区表
2476:03be                              80 01                 ..
2476:03C0  01 00 06 0F 7F 30 3F 00-00 00 B1 B0 04 00 00 00   .....0?..
.......
2476:03D0  41 31 05 0F FF 38 F0 B0-04 00 80 FF 07 00 00 00   A1...8...
.......
2476:03E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   .........
.......
2476:03F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA   .........
.....U.
硬盘分区表
   偏移量     用途   标志  头  扇  柱
  1BE  分区1开始   80   01   01    00
  1C2  分区1结束   06   0F   7F   30
  1C6  分区1相对扇区数   3F        00   00       00
  1CA  分区1扇区数   B1   B0   04    00
  1CE  分区2开始   00   00   41   31
  1D2  分区2结束   05   0F   FF   38
  1D6  分区2相对扇区数   F0   B0    04   00 
  1DA  分区2扇区数   80    FF   07   00
  1FE  主引导记录有效标志   55   AA
-q
//********************

(四) 回答问题
Page 76 Execise 3
(1) 该硬盘划分成几个分区,那个分区为自举分区?
答:该硬盘划分成 2 个分区,第一个分区为自举分区

(2) 该分区从属于那个操作系统,其FAT格式如何?
答:该分区从属于MsDos操作系统,其FAT格式为 32位的DOS

(3) 指出该分区首.末扇区所在的头.柱.扇区号.
答: 首扇区  Head = 01 h  
Cylimder = 0 h
Sector = 1 h
    末扇区 Head = 0f h
Cylimder = 130 h
Sector = 3f h

(4) 指出该分区的扇区总数(十进制).
答:该分区的扇区总数 = 4b0b1 h = 307377 D

(5) 指出该硬盘的容量.
答:第一分区的扇区总数 = 4b0b1 h = 307377 D
                   第二分区的扇区总数 = 7ff80 h = 524160 D
   隐含的扇区总数 
   =  3f h = 63 D  (此值由BOOT引导扇区的BPB表偏移1ch所得)
所以,硬盘容量 = 831600 D 个扇区,
即 415800 K Bytes   
即 406.0546875 M Bytes



00/04/024:59 PM

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.135.144]

[关闭][返回]