微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题新的引导程序清单
栏目实用电脑资料
作者南京燕士海
发布1993-11-05
  新的引导程序清单
  1299:0100 FACL I
  1299:0101 2BC0 SUB AX,AX
  1299:0103 8ED 0 MOV SS,AX
  1299:0105 8EC0 MOV ES, AX
  1299:0107 8ED8 MOV DS, AX
  1299:0109 B8007CMOV AX, 7C00
  1299:010C8BE0 MOV SP, AX
  1299:010E FBSTI
  1299:010F 8BF0 MOV SI, AX;代码下移200H
  1299:0111 BF007E MOV DI, 7E00
  1299:0114 FCCLD
  1299:0115 B90001 MOV CX, 0100
  1299:0118 F3 REPZ
  1299:0119 A5 MOVSW
  1299:011A E90002 JMP 031D
  1299:011DB80102 MOV AX, 0201;读取原主引导记录
  1299:0120 B90300 MOV CX, 0003
  1299:0123 BA8000 MOV DX, 0080
  1299:0126 BB007CMOV BX, 7C00
  1299:0129 CD13 INT 13
  1299:012B90 NOP
  1299:012C90 NOP
  1299:012D90 NOP
  1299:012E BF0200 MOV DI, 0002 ; 二次机会输入PASSWORD
  1299:0131 BE0C7F MOV SI, 7F0C
  1299:0134 B90C00 MOV CX, 000C
  1299:0137 ACLODSB
  1299:0138 BB0700 MOV BX, 0007
  1299:013BB40E MOV AH, 0E
  1299:013DCD10 INT 10
  1299:013F E2F5 LOOP 0137
  ; 显示PASSWORD
  1299:0141 BE187F MOV SI, 7F18
  1299:0144 BD0300 MOV BP, 0003
  1299:0147 B400 MOV AH, 00
  1299:0149 CD16 INT 16
  1299:014B3804 CMP [SI] , AL
  ; 判断PASSWORD正确否
  1299:014D7506 JNZ 0155
  1299:014F 46 INCSI
  1299:0150 4DDECBP
  1299:0151 75F4 JNZ 0147
  1299:0153 EB0E JMP 0163
  1299:0155 BB0700 MOV BX, 0007
  1299:0158 B40E MOV AH, 0E
  1299:015ABO58 MOV AL, 58
  1299:015CCD10 INT 10
  1299:015E 4F DECDI
  1299:015F 75D0 JNZ 0131
  1299:0161 EBFE JMP 0161
  ; PASSWORD错, 死机
  1299:0163 BE4C00 MOV SI, 004C
  ; 填充INT 13跳转入口
  1299:0166 BFC77E MOV DI, 7EC7
  1299:0169 ADLODSW
  1299:016AABSTOSW
  1299:016BADLODSW
  1299:016CABSTOSW
  1299:016DBE2000 MOV SI, 0020
  ; 填充INT8跳转入口
  1299:0170 BFFD7E MOV DI, 7EFD
  1299:0173 ADLODSW
  1299:0174 ABSTOSW
  1299:1075 ADLODSW
  1299:0176 ABSTOSW
  1299:0177 BF0000 MOV DI, 0000
  ; INT13和INT8增添部分推向内存高端
  1299:017ABEB17E MOV SI, 7EB1
  1299:017DB95200 MOV CX, 0052
  1299:0180 8A04 MOV AL, [SI]
  1299:0182 1E PUSH DS
  1299:0183 50 PUSH AX
  1299:0184 B80090 MOV AX, 9000
  1299:0187 8ED8 MOV DS, AX
  1299:0189 58 POP AX
  1299: 018A8805 MOV [DI] , AL
  1299:018C1F POP DS
  1299:018D47 INCDI
  1299 018E 46 INCSI
  1299:018F E2EF LOOP 0180
  1299:0191 BB4C00 MOV BX, 004C
  ; 修改INT13向量
  1299:0194 D80000 MOV AX, 0000
  1299:0197 8907 MOV [BX] , AX
  1299:0199 B80090 MOV AX, 9000
  1299:019C894702 MOV [BX+ 02] , AX
  1299:019F B81A000 MOV AX, 001A
  1299:01A2 BB2000 MOV BX, 0020
  ; 修改INT8向量
  1299:01A5 8907 MOV [BX] , AX
  1299:01A7 B80090 MOV AX, 9000
  1299:01AA 894702 MOV [BX+ 02] , AX
  1299:01ADEB52 JMP 0201
  1299:01AF 90 NOP
  1299:01B0 90 NOP
  1299:01B1 9CPUSHF
  ; INT13补充内容
  1299:01B2 81FA8000 CMP DX, 0080
  1299:01B6 750DJNZ 01C5
  1299:01B8 83F901 CMP CX, + 01
  1299:01BB7508 JNZ 01C5
  1299:01BD80FC02 CMP AH, 02
  1299:01C0 7503 JNZ 01C5
  1299:01C2 B90300 MOV CX, 0003
  1299:01C5 9DPOPF
  ; 跳转到INT13入口
  1299:01C6 EA00000000 JMP 0000:0000
  ; 地址待填
  1299:01CB9CPUSHF
  ; INT8补充内容
  1299:01CC1E PUSH DS
  1299:01CD56 PUSH SI
  1299:01CE 57 PUSH DI
  1299:01CF 50 PUSH AX
  1299:01D0 31C0 XOR AX, AX
  1299:01D2 8ED8 MOV DS, AX
  1299:01D4 06 PUSH ES
  1299:01D5 8EC0 MOV ES, AX
  1299:01D7 BE8400 MOV SI, 0084
  1299:01DAADLODSW
  1299:01D8 3D6014 CMP AX.1460
  ; 判断INT21偏移地址是否正确
  1299:01DE 7506 JNZ 01E6
  1299:01E0 ADLODSW
  1299:01E1 3D7002 CMP AX, 0270
  ; 判断INT21段地址
  1299:01E4 7410 JZ 01F6
  1299:01E6 B80703 MOV AX, 0E07
  ; 报警 1299: 01E9 CD10 INT 10
  1299:01EBBF8400 MOV DI, 0084
  1299:01EE B86014 MOV AX, 1460
  1299:01F1 ABSTOSW
  1299:01F2 B87002 MOV AS, 0170
  1299:01F5 ABSTOSW
  
  ; 重新填充INT21向量
  1299:01F6 07 POP ES
  1299:01F7 58 POP AX
  1299:P1F8 5F POP DI
  1299:01F9 5E POP SI
  1299:01FA1F POP DS
  1299:01FB9DPOPF
  ; 跳转到INT8入口
  1299: 01FC EA00000000 JMP 0000:0000
  ; 地址待填
  1299: 0201 B80D0E MOV AX, 0E0D
  1299: 0204 CD10 INT 10
  1299: 0206 EA007C0000 JMP 0000: 7C00
  ; 跳转到原主引导记录
  该程序的安装过程为,首先执行程序1,MOVMBT.COM,将硬盘主引导程序搬至0头0柱3扇区,然后执行程序2,SETNMBT.COM,就可以将新主引导程序写入0头0柱1扇区。以后硬盘启动后便自动执行新主引导程序的各个功能。
  在安装完新主引导程序后,如果软盘启动想进入硬盘,可以执行程序3,UNLOCKH.COM,程序4,LOCKH.COM可以重新锁住硬盘。程序1:MOVMBT.COM
  mov ax,0201h
  mov dx,0080h
  movbx,200h
  movcx,0001 int13h
  movax,0301h int13h int20h
  程序2: SETNMBT.COM100 dbnmbt, bat, 0
  mov dx, 100h
  mov ax, 3d00h
  mov int 21hh
  mov bx, ax
  mov dx, 200h
  mov cx, 200h
  mov ah, 3fh
  int 21h
  mov ah, 3eh
  int 21h
  mov ax, 0301h
  mov cx, 0001h
  mov dx, 0080h
  mov bx, 200h
  int 13h
  int 20h
  程序3: UNLOCKH.COM
  mov ax, 0201h
  mov dx, 0080h
  mov cx, 0001h
  mov bx, 200h
  int 13h
  mov al, 04h
  mov [3c2] , al
  mov ax, 0301h
  int 13h
  int 20h
  注: 该程序必须在软盘启动后执行。
  程序4: LOCKH.COM
  mov ax, 0201h
  mov dx, 0080h
  mov cx, 0001h
  mov bx, 200h
  int 13h
  mov al, 0
  mov [3c2] , al
  mov ax, 0301h
  int 13h
  int 20h
  注: 该程序也必须在软盘启动后执行。
  (南京燕士海)