XP.BS1.1主要流程 JMP 0154 // 真正的流程入口 剩余XP.BS1.1部分、XP.BS1.2全部、XP.BS1.3前部分均为数据 XP.BS1.3主要流程 0154: CLI // 清中断允许位 XOR AX, AX MOV SS, AX MOV SP, 7C00 STI // 置中断允许位 MOV AX, 07C0 MOV DS, AX CALL 017B // 跳转到XP.BS1.4 XP.BS1.4中RET并进入XP.BS1.4 XP.BS1.4主要流程 MOV AX, 0D00 MOV ES, AX XOR BX, BX MOV BYTE PRT [000E], 10 CALL 01C7 // 跳转到XP.BS1.6 ADD [DI], CL ADD CL, BL 017B: MOV DL, [0024] // DS:[0024]即0x80 MOV AH, 08 INT 13 // 获取硬盘参数 JNB 018A // 没有发生错误则转移,即不需检查是否支持扩展的INT 13,跳转到XP.BS1.5 XP.BS1.5主要流程 MOV CX, FFFF // 除了这句,感觉与018A无区别 MOV DH, CL // 低6位为扇区号 018A: MOV DH, C6 INC AX MOV DH, D1 AND DL, 3F // MUL DX XCHG CL, CH // 柱面号+扇区号 IN AX, DX PUSH ES INC CX MOV BH, C9 MUL CX MOV [0020], AX RET XP.BS1.6主要流程 01C7: PUSH DS PUSH ES MOV AX, [0010] ADD AX, [001C] CMP AX, [0020] CMP BYTE PTR [BP+SI], 00 PUSH DS ADD [BP+50], AH PUSH ES PUSH BX