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

📄 3_flashm.lst

📁 可作为接口实验的参考教材
💻 LST
字号:
Microsoft (R) Macro Assembler Version 5.00                  1/22/4                                                             Page     1-1


				;//********************************************
				********* 
				;文件名: FlashM for 8088 
				 
				;功能: 闪存读写实验 
				 
				;接线: 用导线连接闪存模块的CS_FLASH到地。 
				;      扩展输出模块的CS_273到CPU模块的200H; 
				;      扩展输出模块的JD1C到八位逻辑电平显示模块
				的JD4B。 
				;//********************************************
				********* 
 = 0000				ADDR1   EQU     0000H 
 = 0010				ADDR2   EQU     0010H 
 = 0200				D273    EQU     200H  
				 
 0000				data   segment 
 0000				data   ends  
				 
 0000				stack  segment 
 0000  0032[			       sta   dw    50 dup(?) 
	   ????			
			 ]	
				
 = 0032				       top   equ   length sta 
 0064				stack ends 
				 
 0000				CODE    SEGMENT 
				ASSUME  CS:CODE,DS:DATA,SS:STACK,ES:DATA 
				 
				 
 0000				START:	 
 0000  0E				    PUSH    CS 
 0001  1F				    POP     DS 
 0002  90				    NOP 
 0003  90				    NOP 
 0004  E8 003B R			    CALL    CHIP_ERASE	   ; 芯片擦除 
 0007  E8 00B7 R		        CALL    DELAY 	 
				         
 000A  90			        NOP                    ; 运行到这一行,
				观察附加段数据 
				            	 
 000B  BB 0000				    MOV     BX,ADDR1 
 000E  B4 55			   	    MOV     AH,55H         ; 向设定的位
				置写入55H 
 0010  E8 008F R		 	    CALL    BYTE_WRITE 
				 	     
 0013  90			        NOP                    ; 运行到这一行,
				观察附加段ADDR1数据  
				                
 0014  BB 0000				    MOV     BX,ADDR1    	 
 0017  26: 8A 17		        MOV     DL,ES:[BX]     ; 读数据1 
				         
 001A  90			        NOP                    ; 运行到这一行,
Microsoft (R) Macro Assembler Version 5.00                  1/22/4                                                             Page     1-2


				观察DL数据  
				          	        
 001B  8A C2			        MOV     AL,DL 
 001D  BA 0200			        MOV     DX,D273        ; 并行输出口地址
				 
 0020  EE			        OUT     DX,AL          ; 输出数据1 
				       
 0021  90			        NOP                    ; 运行到这一行,
				LED显示数据1       
				       
 0022  BB 0010				    MOV     BX,ADDR2 
 0025  B4 AA			   	    MOV     AH,0AAH        ; 向设定的位
				置写入0AAH  
 0027  E8 008F R			    CALL    BYTE_WRITE 
					     
 002A  90			        NOP                    ; 运行到这一行,
				观察附加段ADDR2数据 	     
					     
 002B  BB 0010				    MOV     BX,ADDR2    	 
 002E  26: 8A 17		        MOV     DL,ES:[BX]     ; 读数据2 
				         
 0031  90			        NOP                    ; 运行到这一行,
				观察DL数据  
				          	            
 0032  8A C2			        MOV     AL,DL 
 0034  BA 0200			        MOV     DX,D273        ; 并行输出口地址
				 
 0037  EE			        OUT     DX,AL          ; 输出数据2     
				    
				         
 0038  90			        NOP                    ; 运行到这一行,
				LED显示数据2  
 0039  EB FE				    JMP     $ 
					 
					  
				;**********************************************
				************************************ 
				;                             芯片擦除 
 003B				CHIP_ERASE  proc  near 
 003B  53			        push    bx 
 003C  52			        push    dx 
 003D				CE_START: 
 003D  B8 5000			        MOV     AX,5000H 
 0040  8E C0			    	MOV     ES,AX	 
					 
 0042  BB 5555			    	MOV     BX,5555H 
 0045  B2 AA			    	MOV     DL,0AAH 
 0047  26: 88 17		        MOV     ES:[BX],DL    ;5555H/AAH 
 004A  BB 2AAA			        MOV     BX,2AAAH 
 004D  B2 55			    	MOV     DL,55H 
 004F  26: 88 17		        MOV     ES:[BX],DL    ;2AAAH/55H 
 0052  BB 5555			        MOV     BX,5555H 
 0055  B2 80			    	MOV     DL,80H 
 0057  26: 88 17		        MOV     ES:[BX],DL    ;5555H/80H 
Microsoft (R) Macro Assembler Version 5.00                  1/22/4                                                             Page     1-3


 005A  BB 5555			        MOV     BX,5555H 
 005D  B2 AA			    	MOV     DL,0AAH 
 005F  26: 88 17		  	    MOV     ES:[BX],DL    ;555H/AAH 
 0062  BB 2AAA			        MOV     BX,2AAAH 
 0065  B2 55				    MOV     DL,55H 
 0067  26: 88 17		        MOV     ES:[BX],DL    ;2AAAH/55H 
 006A  BB 5555			        MOV     BX,5555H 
 006D  B2 10			    	MOV     DL,10H 
 006F  26: 88 17		        MOV     ES:[BX],DL    ;5555H/10H 
 0072				CE_WAIT:	 
 0072  26: 8A 07		     	MOV     AL,ES:[BX] 
 0075  A8 80				    TEST    AL,80H 
 0077  75 12				    JNZ     CE_OK 
 0079  A8 20				    TEST    AL,20H 
 007B  74 F5				    JZ      CE_WAIT	      ;等待擦除
				完成 
 007D  26: 8A 07			    MOV     AL,ES:[BX] 
 0080  A8 80				    TEST    AL,80H 
 0082  75 07				    JNZ     CE_OK 
 0084  B2 F0				    MOV     DL,0F0H	 	  ;擦除
				不成功,复位 
 0086  26: 88 17			    MOV     ES:[BX],DL     
 0089  EB B2				    JMP     CE_START	  ;重试 
 008B				CE_OK:	  
 008B  90				    NOP 
 008C  5A			 	    POP     DX 
 008D  5B				    POP	    BX 
 008E  C3			 	    RET 
 008F				CHIP_ERASE      ENDP 
					 
				;**********************************************
				************************************ 
 008F				BYTE_WRITE   PROC  NEAR;处理字节写入前的命令序

⌨️ 快捷键说明

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