| 
 | 
 
248行和附近 
- /* begin characteristics distinguish this sector from others */
 
 -     .byte    0x8E, 0xDB        //movw    %bx, %ds
 
 -     .byte    0x68, 0xE0, 0x07    //pushw    $0x07E0
 
 -     .byte    0x07            //popw    %es    /* ES=0x07E0 */
 
  
-     //cmpl    $0xCE1A02B0, (wee63_signature - _start1 + 4 + STAGE2_SIZE - 4)
 
 -     .byte    0x66, 0x81, 0x3E    //cmpl
 
 -     .word    (wee63_signature - _start1 + STAGE2_SIZE)
 
 -                 //this word is a pointer to the bootlace
 
 -                 //signature near the end of pre_stage2
 
 -                 //this word varies according to STAGE2_SIZE.
 
 -     .byte    0xB0, 0x02, 0x1A, 0xCE    //this is the bootlace signature.
 
 -                     //it should also appear at near the end
 
 -                     //of pre_stage2
 
 - /* end characteristics distinguish this sector from others */
 
  复制代码 
 
375行和附近-         movb        $0x80, %dl        /* try hard drive first */
 
 - 1:
 
 -         xorl        %eax, %eax
 
 -         pushaw
 
 -         pushl        %eax
 
 -         pushl        %eax
 
 -         pushw        %es
 
 -         pushw        %ax
 
 -         pushw        $127        //$63
 
 -         pushw        $0x10
 
 -         movw        %sp, %si        /* DS:SI=SS:SP=disk address packet */
 
 -         movw        $0x4200, %ax
 
 -         call        int13
 
 -         popaw
 
 -         popaw
 
  
-         /* compare the sector to the MBR, ignoring BPB */
 
  
-         movw        $0x5A, %si
 
 -         movw        %si, %di
 
 -         movw        $((0x200 - 0x5A) / 2), %cx
 
 -         cs repz cmpsw
 
 -         je        1f
 
 -         testb        %dl, %dl        /* floppy tried? */
 
 -         je        Error_or_prev_MBR        /* yes. fail */
 
 -         movb        $0, %dl                /* then try floppy */
 
 -         jmp        1b
 
 - 1:
 
  
-         movw        %es, %bx
 
 -         addw        $((wee63_signature - _start1 + 4 + STAGE2_SIZE - 4) >> 4), %bx
 
 -         movw        %bx, %ds
 
  
-         cmpl        $0xCE1A02B0, ((STAGE2_SIZE - 4) & 0x0F)
 
 -         jne        Error_or_prev_MBR        /* Missing helper */
 
 - 2:
 
 -         ljmp        $0, $0x8200
 
  复制代码 
 |   
 
 
 
 |