7C00 EB58 JMP 7C5A
7C02 90 NOP
7C5A FA CLI
7C5B 33C9 XOR CX,CX ;【CX=0】
7C5D 8ED1 MOV SS,CX ;【SS=0】
7C5F BCF87B MOV SP,7BF8 ;【SP=7BF8,做为栈顶】
7C62 8EC1 MOV ES,CX ;【ES=0】
7C64 BD7800 MOV BP,0078 ;【BP=0078,1EH号中断向量的地址】
7C67 C57600 LDS SI,[BP+00] ;【取1EH号中断向量入DS:SI 】
7C6A 1E PUSH DS ;【指向一个11字节的磁盘参数表】
7C6B 56 PUSH SI ;【取到后压入堆栈中保存】
7C6C 16 PUSH SS ;
7C6D 55 PUSH BP ;【保存地址0000:0078H 】
此时【SP=7BF8-8=7BF0】
7C6E BF2205 MOV DI,0522 ;【DI=0522】
7C71 897E00 MOV [BP+00],DI ;【[0000:0078]=0522】
7C74 894E02 MOV [BP+02],CX ;【[0000:007A]=0】
7C77 B10B MOV CL,0B ;【CL=0B】
7C79 FC CLD ;【清方向位】
7C7A F3 REPZ ;
7C7B A4 MOVSB ;【将磁盘参数表复制到0000:0522H处】
7C7C 8ED9 MOV DS,CX ;【CX=0,DS=0】
7C7E BD007C MOV BP,7C00 ;【BP=7C00】
7C81 C645FE0F MOV BYTE PTR [DI-02],0F ;【修改参数表中 "磁头定位时间 " 】
7C85 8B4618 MOV AX,[BP+18]
; 【BP=7C00,BP+18,就是取每磁道扇区数给AX=003F(63个扇区)】
7C88 8845F9 MOV [DI-07],AL 【修改参数表中 "每磁道扇区数】
7C8B 384E40 CMP [BP+40],CL 【BP=7C00,BP+40,就是磁盘编号,硬盘是80,软盘是00】