⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmboot.txt

📁 电脑编程技巧和源码。很不错的。
💻 TXT
字号:
c:\>debug
-a 100
cs:0100   CLI	        ;清中断                                            
cs:0101   XOR	AX,AX   ;0->ax                                             
cs:0103   PUSH	AX                                                         
cs:0104   POP	ES      ;0->es                                             
cs:0105   PUSH	AX                                                         
cs:0106   POP	DS      ;0->ds                                             
cs:0107   MOV	AX,0003                                                    
cs:010A   INT	10      ;清屏                                              
cs:010C   MOV	AH,01                                                      
cs:010E   MOV	CL,10                                                      
cs:0110   MOV	CH,11                                                      
cs:0112   INT	10       ;隐藏光标                                         
cs:0114   PUSH	CS                                                         
cs:0115   POP	ES       ;es=cs                                            
cs:0116   MOV	AX,1100                                                    
cs:0119   MOV	BX,1000  ;字符集编号                                       
cs:011C   MOV	CX,000A  ;显示5个字符                                      
cs:011F   MOV	DX,0080  ;开始字符编号                                     
cs:0122   MOV	BP,07C0                                                    
cs:0125   MOV	ES,BP    ;es=7c0;                                          
cs:0127   MOV	BP,00B0  ;点阵字符地址指针                                 
cs:012A   INT	10                                                         
cs:012C   MOV	BH,00    ;显示页                                           
cs:012E   MOV	BL,8E    ;字符颜色属性                                     
cs:0130   MOV	AL,80    ;开始显示的字符编码                               
cs:0132   PUSH	CX                                                         
cs:0133   MOV	AH,09                                                      
cs:0135   MOV	CX,0001                                                    
cs:0138   INT	10        ;显示单个字符                                    
cs:013A   MOV	AH,03                                                      
cs:013C   INT	10        ;读光标位置                                      
cs:013E   MOV	AH,02                                                      
cs:0140   INC	DL                                                         
cs:0142   INT	10        ;置光标向右移一位                                
cs:0144   INC	AL                                                         
cs:0146   POP	CX                                                         
cs:0147   LOOP	0132                                                       
cs:0149   XOR	AX,AX                                                      
cs:014B   MOV	ES,AX      ;0->ax                                          
cs:014D   MOV	DS,AX                                                      
cs:014F   MOV	SI,7DF0    ;es=ds=0;                                       
cs:0152   XOR	DI,DI      ;7df0->si                                       
cs:0154   XOR	AH,AH      ;di=0                                           
cs:0156   INT	16                                                         
cs:0158   CMP	AL,0D                                                      
cs:015A   JZ	0169       ;是<回车>符吗?                                  
cs:015C   AND	AL,A6                                                      
cs:015E   MOV	[SI],AL                                                    
cs:0160   INC	SI                                                         
cs:0161   INC	DI                                                         
cs:0162   MOV	AX,0E2A                                                    
cs:0165   INT	10         ;显示"*"号                                      
cs:0167   JMP	0154                                                       
cs:0169   CMP	DI,+05     ;判断口令长度                                                
cs:016C   JNZ	017C                                          
cs:016E   MOV	SI,7DF0                                                    
cs:0171   MOV	DI,7CA7                                                    
cs:0174   MOV	CX,0005    ;缺省为5个字符                                                    
cs:0177   CLD	                                         
cs:0178   REPZ	                                                           
cs:0179   CMPSB	                                                           
cs:017A   JZ	018C                                                       
cs:017C   DEC	BYTE PTR [7C88]                    
cs:0180   MOV	AL,[7C88]                          
cs:0183   CMP	AL,00     ;判断三次口令                                                       
cs:0185   JNZ	01A4                                                       
cs:0187   JMP	FFFF:0003 ;重新启动                
cs:018C   MOV	AX,0003                                                    
cs:018F   INT	10        ;成功清屏                                        
cs:0191   MOV	AX,0201                                                    
cs:0194   MOV	BX,0600   ;读到偏移600处                                   
cs:0197   MOV	CX,0002   ;读0面0道2扇                                     
cs:019A   MOV	DX,0080                                                    
cs:019D   INT	13                                                         
cs:019F   JMP	0000:0600  ;跳0000:600处执行                          
cs:01A4   JMP	0107      
;第二扇区加载的数据如下:   
cs:01A7   JMP	024C                                                       
cs:01AA   MOV	ES,AX                              
cs:01AC   MOV	DS,AX   ds=es=0;
;保存int13中断的入口地址   
cs:01AE   MOV	AX,[004C]                          
cs:01B1   MOV	[0682],AX                          
cs:01B4   MOV	AX,[004E]                          
cs:01B7   MOV	[0684],AX
;减少内存,驻留程序   
cs:01BA   MOV	AX,[0413]                          
cs:01BD   SUB	AX,0001                            
cs:01C0   MOV	[0413],AX                          
cs:01C3   MOV	CL,06                              
cs:01C5   SHL	AX,CL 
;将新的int13驻留高端内存   
cs:01C7   PUSH	AX                                 
cs:01C8   MOV	DI,0000                            
cs:01CB   MOV	SI,0646                            
cs:01CE   MOV	CX,0040                            
cs:01D1   XOR	AX,AX                              
cs:01D3   MOV	DS,AX                              
cs:01D5   MOV	AL,[SI]                            
cs:01D7   POP	DS                                 
cs:01D8   PUSH	DS                                 
cs:01D9   MOV	[DI],AL                            
cs:01DB   INC	DI                                 
cs:01DC   INC	SI                                 
cs:01DD   LOOP	01D1  
;修改int13入口地址   
cs:01DF   MOV	AX,0000                            
cs:01E2   MOV	DS,AX                              
cs:01E4   MOV	[004C],AX                          
cs:01E7   POP	AX                                 
cs:01E8   MOV	[004E],AX                          
cs:01EB   JMP	022D 
;修改int13片段如下   
cs:01ED   PUSHF	                                   
cs:01EE   CMP	DL,FF ;虚拟一个驱动器号                             
cs:01F1   JNZ	01F7                               
cs:01F3   MOV	DL,80                              
cs:01F5   JMP	0227                               
cs:01F7   CMP	DL,80                              
cs:01FA   JNZ	0227                               
cs:01FC   CMP	DH,00                              
cs:01FF   JNZ	020A                               
cs:0201   CMP	CX,+01 ;判断是否0面0道1扇区                                    
cs:0204   JNZ	0216                                                           
cs:0206   MOV	DH,01  ;是则去读1面0道1扇区                                    
cs:0208   JMP	0220                                                           
cs:020A   CMP	DH,01                                                          
cs:020D   JNZ	0227                                                           
cs:020F   CMP	CX,+01                                                         
cs:0212   JNZ	0227                                                           
cs:0214   JMP	0220                                                           
cs:0216   CMP	CX,+02 ;判断是否0面0道2扇区                                    
cs:0219   JNZ	0227                                                           
cs:021B   MOV	CX,0003 ;是则去读0面0道3扇区                                   
cs:021E   JMP	0227                                                           
cs:0220   CMP	AH,03   ;对特定扇区写保护                                      
cs:0223   JNZ	0227                                                           
cs:0225   MOV	AH,02                                                          
cs:0227   POPF	                                                               
cs:0228   JMP	0000:0000  ;int13中断新的入口地址                         
cs:022D   MOV	AX,0E07    ;响铃提示                                           
cs:0230   INT	10                                                             
cs:0232   CLI	                                                               
cs:0233   XOR	AX,AX                                                          
cs:0235   MOV	ES,AX                                                          
cs:0237   MOV	DS,AX                                                          
cs:0239   MOV	AX,0201                                                        
cs:023C   MOV	BX,7C00   ;读到7c00处                                          
cs:023F   MOV	CX,0001   ;读1面0道1扇区                                       
cs:0242   MOV	DX,0180                                                        
cs:0245   INT	13                                                             
cs:0247   JMP	0000:7C00 ;跳0000:7c00处执行
cs:024C   MOV	AH,04                              
cs:024E   INT	1A                                 
cs:0250   CMP	DL,26    ;判断是否26日                                
cs:0253   JNZ	026E                                                  
cs:0255   INC	DL                                                    
cs:0257   MOV	AH,05                                                 
cs:0259   INT	1A                                                    
cs:025B   MOV	BYTE PTR [7f0],ee ;设置标志                 
cs:0260   MOV	AX,0301                                               
cs:0263   MOV	BX,0600                                               
cs:0266   MOV	CX,0002                                               
cs:0269   MOV	DX,0080                                               
cs:026C   INT	13        ;回写                                       
cs:026E   CMP	DL,27     ;判断是否27日                               
cs:0271   JNZ	0279                                                  
cs:0273   CLI	                                                      
cs:0274   XOR	AX,AX                                                 
cs:0276   JMP	01AA                                                  
cs:0279   PUSH	CS                                                    
cs:027A   POP	DS                                                    
cs:027B   MOV	SI,07F0                                               
cs:027E   MOV	AL,[SI]                                               
cs:0280   CMP	AL,EE       ;有标志                                   
cs:0282   JNZ	0273                                                  
cs:0284   DEC	DL           ;日期减一                                
cs:0286   MOV	AH,05                                                 
cs:0288   INT	1A                                                    
cs:028A   MOV	BYTE PTR [7f0],00 ;清标志 
cs:028F   MOV	AX,0301                                               
cs:0292   MOV	BX,0600                                               
cs:0295   MOV	CX,0002                                               
cs:0298   MOV	DX,0080                                               
cs:029B   INT	13            ;回写                                   
cs:029D   JMP	0273          ;继续引导                               
cs:029F                        
-n jmboot.dat
-r cx
:19f
-w 100
-q















































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -