?? fution.asm
字號:
;-----------------------------------------------------------
PUBLIC _RESET_SYSTEM
PUBLIC _SET_DATA_L
PUBLIC _ADDDATA
PUBLIC _MOVEDATA_L
PUBLIC _MOVEDATA_R
PUBLIC _WRITE_OFF
PUBLIC _SWAPDATA
PROC SEGMENT CODE
RSEG PROC
;---------------------------------------------------------------------
_RESET_SYSTEM:
MOV PSW,#0D
MOV IE,#0D
MOV IP,#0D
MOV TMOD,#0D
MOV TCON,#0D
POP ACC
POP ACC
MOV DPTR,#ROVER
PUSH DPL
PUSH DPH
RETI
ROVER: CLR A
PUSH ACC
PUSH ACC
RETI
;---------------------------------------------------------------------
;數(shù)據(jù)搬家,入口源地址,目的地址,終止地址
;---------------------------------------------------------------------
_ADDDATA: ;MOV R7,#4D ;源地址
;MOV R6,#3D
;MOV R5,#3D ;目的地址
;MOV R4,#3D
;R3 ;終止地址
LOOP_ADD: MOV DPL,R7
MOV DPH,R6
MOVX A,@DPTR ;得到一個數(shù)據(jù)
INC DPTR
MOV R7,DPL
MOV R6,DPH
MOV DPL,R5
MOV DPH,R4
MOVX @DPTR,A ;寫入其他地址
INC DPTR
MOV R5,DPL
MOV R4,DPH
MOV A,R5
XRL A,R3
JNZ LOOP_ADD
MOV A,R4
XRL A,R2
JNZ LOOP_ADD
RET
;---------------------------------------------------------------------
;左移出屏數(shù)據(jù)裝載
;---------------------------------------------------------------------
_MOVEDATA_L: ;MOV R7,#4D ;源地址
;MOV R6,#3D
;MOV R5,#3D ;目的地址
;MOV R4,#3D
;R3 ;終止地址
;R2
;R1
;R0
MOV DPL,R7
MOV DPH,R6
MOV A,R1
PUSH ACC
MOV A,R5
MOV R1,A
LOOP: MOV A,R3
MOV R2,A
LOOP_L:
MOVX A,@DPTR ;得到一個數(shù)據(jù)
RLC A
MOV P2,R4
MOVX @R1,A ;寫入其他地址
PUSH PSW
XCH A,DPL
DEC A
CJNE A,#0FFH,LOOP_DPTR
DEC DPH
LOOP_DPTR: XCH A,DPL
DEC R1
CJNE R1,#0FFH,LOOP_DPTR2
DEC R4
LOOP_DPTR2:
POP PSW
DJNZ R2,LOOP_L
MOV A,R3
ADD A,R3
ADD A,DPL
MOV DPL,A
MOV A,DPH
ADDC A,#0D
MOV DPH,A
MOV A,R3
ADD A,R3
ADD A,R1
MOV R1,A
MOV A,R4
ADDC A,#0D
MOV R4,A
DJNZ R0,LOOP
POP ACC
MOV R1,A
RET
;---------------------------------------------------------------------
;左移出屏數(shù)據(jù)裝載
;---------------------------------------------------------------------
_MOVEDATA_R: ;MOV R7,#4D ;源地址
;MOV R6,#3D
;MOV R5,#3D ;目的地址
;MOV R4,#3D
;MOV R3,#23D ;終止地址
;MOV R2,#2D
MOV DPH,R6
MOV DPL,R7
MOV 00H,05H
PUSH PSW
LOOP_R: POP PSW
MOVX A,@DPTR ;得到一個數(shù)據(jù)
INC DPTR
RRC A
MOV P2,R4
MOVX @R1,A ;寫入其他地址
PUSH PSW
INC R1
CJNE R1,#0D,LOOP_R_NEXT
INC R4
LOOP_R_NEXT: MOV A,R1
XRL A,R3
JNZ LOOP_R
MOV A,R4
XRL A,R2
JNZ LOOP_R
POP PSW
RET
;---------------------------------------------------------------------
;數(shù)據(jù)搬家,入口源地址,目的地址,終止地址
;---------------------------------------------------------------------
_SET_DATA_L: ;MOV R7,#4D ;源地址
;MOV R6,#3D
;MOV R5,#3D ;目的地址
;MOV R4,#3D
;MOV R3,#23D ;終止地址
;MOV R2,#2D
INC R3
MOV DPH,R6
MOV DPL,R7
MOVX A,@DPTR ;得到一個數(shù)據(jù)
LOP_L: RLC A
DJNZ R3,LOP_L
JC LOP_H
MOV DPH,R4
MOV DPL,R5
MOVX A,@DPTR ;寫入其他地址
ANL A,#0FEH
MOVX @DPTR,A
RET
LOP_H: MOV DPH,R4
MOV DPL,R5
MOVX A,@DPTR ;寫入其他地址
ORL A,#01H
MOVX @DPTR,A
RET
;---------------------------------------------------------------------
_WRITE_OFF:
CLR P1.5
CLR P1.6
CLR P1.7
MOV DPTR,#5555H
MOV A,#0AAH
MOVX @DPTR,A
MOV DPTR,#2AAAH
MOV A,#055H
MOVX @DPTR,A
MOV DPTR,#5555H
MOV A,#80H
MOVX @DPTR,A
MOV DPTR,#5555H
MOV A,#0AAH
MOVX @DPTR,A
MOV DPTR,#2AAAH
MOV A,#055H
MOVX @DPTR,A
MOV DPTR,#5555H
MOV A,#20H
RET
;---------------------------------------------------------------------
;數(shù)據(jù)高低位交換
;---------------------------------------------------------------------
_SWAPDATA: ;MOV R7,#4D ;源地址
;MOV R6,#3D
;MOV R5,#3D ;目的地址
;MOV R4,#3D
;MOV R3,#23D ;終止地址
;MOV R2,#2D
MOV A,R5
ADD A,#1D
MOV R5,A
MOV A,R4
ADDC A,#0D
MOV R4,A
MOV DPH,R6
MOV DPL,R7
LOOP_SWAP: MOVX A,@DPTR ;得到一個數(shù)據(jù)
MOV R3,#8D
CPL A
MOV R1,A
LOOP_RLC: MOV A,R1
RLC A
MOV R1,A
MOV A,R2
RRC A
MOV R2,A
DJNZ R3,LOOP_RLC
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,DPL
XRL A,R5
JNZ LOOP_SWAP
MOV A,DPH
XRL A,R4
JNZ LOOP_SWAP
RET
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -