dp_write_video.a51

来自「这是TCP/IP协议组播的实现代码」· A51 代码 · 共 137 行

A51
137
字号

#include <REG400.H>
;汇编代码
; 在代码段中定义段
?PR?dp_write_video?LOWLVL SEGMENT CODE

; 输出函数名
PUBLIC dp_write_video
;这个函数可被连接器放置在任何地方
RSEG ?PR?dp_write_video?LOWLVL
;*****************************************************************
; Function: _dpread
; Description: 等待定时器0溢出向外部器件表明P1中的数据是有效的如果定时器尚
; 未溢出被写入XDATA的指定地址中
; Parameters: R7 – 存放要等待的时标数
; R4|R5 – 存放要写入的XDATA区地址
; Returns: 读数成功返回1,时间到返回0
; Side Effects: none.
;*****************************************************************
dp_write_video:  

	mov dpx,#0x04      ;load source address
	mov dph,#0x10
	mov dpl,#0x00

	mov dpx1,#0x29  	;load destination address
	mov dph1,#0x00
	mov dpl1,#0x00
        
	mov R0,#0x02e   	; the number of moved data (0x0b8 *0x08 = 1472 bytes)
	mov dps,#0x30       ; auto-toggle mode,auto-increment enable,
       
write_loop_v: 
                      
	movx a, @dptr       ; read from dataport1
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport2
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport3
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport4
	movx @dptr,a        ; write to  RAM
     
	movx a, @dptr       ; read from dataport5
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport6 	 
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport7
 	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport8
	movx @dptr,a        ; write to  RAM

	movx a, @dptr       ; read from dataport9
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport10
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport11
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport12
	movx @dptr,a        ; write to  RAM
     
	movx a, @dptr       ; read from dataport13
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport14 	 
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport15
 	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport16
	movx @dptr,a        ; write to  RAM

	movx a, @dptr       ; read from dataport17
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport18
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport19
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport20
	movx @dptr,a        ; write to  RAM
     
	movx a, @dptr       ; read from dataport21
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport22 	 
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport23
 	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport24
	movx @dptr,a        ; write to  RAM

	movx a, @dptr       ; read from dataport25
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport26
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport27
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport28
	movx @dptr,a        ; write to  RAM
     
	movx a, @dptr       ; read from dataport29
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport30 	 
	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport31
 	movx @dptr,a        ; write to  RAM
	
	movx a, @dptr       ; read from dataport32
	movx @dptr,a        ; write to  RAM
        
	djnz R0,write_loop_v        
	mov dps,#0x00    ; resume the value of dps


    RET
    END

⌨️ 快捷键说明

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