原帖由 lvyanan 于 2009-10-2 10:25 发表
粗略看了一下,没看到光盘启动的处理代码,显示Press any key to boot from CD的指针应该为243h。。。。。。
192F:0151 E9B200 JMP 0206 ;
192F:0154 5D POP BP ;
192F:0155 07 POP ES ;
192F:0156 BE4301 MOV SI,0143 ;装入提示字符串地址
192F:0159 AC LODSB ;
192F:015A A26401 MOV [0164],AL ;存入首字符到[0164]内存
192F:015D 56 PUSH SI ;
192F:015E BE4301 MOV SI,0143 ;
192F:0161 E8C500 CALL 0229 ;调用函数显示 Press any key to boot from CD
192F:0164 5E POP SI ;
192F:0165 B98000 MOV CX,0080 ;
192F:0168 B401 MOV AH,01 ;是否有普通键按下
192F:016A CD16 INT 16 ;
192F:016C 7406 JZ 0174 ;ZF=1无按键 ZF=0有按键
192F:016E B400 MOV AH,00 ;
192F:0170 CD16 INT 16 ;
192F:0172 E2F4 LOOP 0168 ;读取按键值循环
192F:0174 FA CLI ;
192F:0175 06 PUSH ES ;
192F:0176 33C0 XOR AX,AX ;//修改定时中断向量表
192F:0178 8EC0 MOV ES,AX ;ES=0000
192F:017A BB2000 MOV BX,0020 ;
192F:017D 26 ES: ;
192F:017E 8B07 MOV AX,[BX] ;
192F:0180 A36701 MOV [0167],AX ;保存原中断服务程序地址
192F:0183 26 ES: ;
192F:0184 8B4702 MOV AX,[BX+02] ;
192F:0187 A36901 MOV [0169],AX ;保存原中断服务程序段地址
192F:018A 26 ES: ;
192F:018B C7070901 MOV WORD PTR [BX],0109 ;写入新中断服务程序地址
192F:018F 26 ES: ;
192F:0190 8C4F02 MOV [BX+02],CS ;写入新中断服务程序段地址
192F:0193 07 POP ES ;
192F:0194 FB STI ;
。。。。。。。。。。。。。
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) | Powered by Discuz! X3.3 |