📄 lcdsub.asm
字号:
SUBK 4
BLZ L57
.line 15
;>>>> break;
;>>>> case'B':
B L59
L60:
.line 17
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L59
L61:
.line 18
;>>>> { j=*(HANZI_ADD+i);
LAC *
SBRK 5-LF11
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR2
ADRK 7-LF11
SACL *
.line 19
;>>>> k=(j>>8)|0xFF00;
LAC *-,7
ORK 65280,15
SACH * ,1
.line 20
;>>>> LCD_WRITE('B',k);
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 21
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,3
MAR *0+
OR *-
SACL * ,AR1
.line 22
;>>>> LCD_WRITE('B',k);
SACL *+
LACK 66
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 17
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L61
.line 24
;>>>> break;
;>>>> case'C':
B L59
L63:
.line 26
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L59
L64:
.line 27
;>>>> { j=*(HANZI_ADD+i);
LAC *
SBRK 5-LF11
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR2
ADRK 7-LF11
SACL *
.line 28
;>>>> k=(j>>8)|0xFF00;
LAC *-,7
ORK 65280,15
SACH * ,1
.line 29
;>>>> LCD_WRITE('C',k);
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 30
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,3
MAR *0+
OR *-
SACL * ,AR1
.line 31
;>>>> LCD_WRITE('C',k);
SACL *+
LACK 67
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 26
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L64
.line 33
;>>>> break;
B L59
.line 34
;>>>> default:break;
L55:
.line 6
SSXM
MAR * ,AR2
LARK AR2,-3+LF11
MAR *0+
LAC *
SUBK 65
BZ L56
SUBK 1
BZ L60
SUBK 1
BZ L63
L59:
EPI0_11:
.line 36
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 369,000000000H,4
.sym _LCD_HANZIHALF,_LCD_HANZIHALF,32,2,0
.globl _LCD_HANZIHALF
.func 370
;>>>> void LCD_HANZIHALF(char LCD_PART,const int *HANZI_ADD)
******************************************************
* FUNCTION DEF : _LCD_HANZIHALF
******************************************************
_LCD_HANZIHALF:
LF12 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,36
LAR AR0,*0+
.sym _LCD_PART,-3+LF12,2,9,16
.sym _HANZI_ADD,-4+LF12,20,9,16
.sym _hanzi,1,52,1,512,,32
.sym _i,33,4,1,16
.sym _j,34,4,1,16
.sym _k,35,4,1,16
.line 2
;>>>> int hanzi[32];
;>>>> int i;
;>>>> int j;
;>>>> int k;
.line 7
;>>>> pdmemcpy((void *)hanzi, (void *)HANZI_ADD, 32);
;>>>> switch(LCD_PART)
;>>>> { case'A':
LACK 32
SACL *+,AR2
LARK AR2,-4+LF12
MAR *0+
LAC * ,AR1
SACL *+,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
CALL _pdmemcpy
SBRK 3
B L67
L68:
.line 10
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,33
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L71
L69:
.line 11
;>>>> { j=*(hanzi+i);
LAR AR3,*+,AR3
MAR *0+
MAR *+
LAC * ,AR2
SACL *
.line 12
;>>>> k=(j>>8)|0xFF00;
LAC *+,7
ORK 65280,15
SACH * ,1
.line 13
;>>>> LCD_WRITE('A',k);
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 14
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,34
MAR *0+
OR *+
SACL * ,AR1
.line 15
;>>>> LCD_WRITE('A',k);
SACL *+
LACK 65
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 10
MAR * ,AR2
LARK AR2,33
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L69
.line 17
;>>>> break;
;>>>> case'B':
B L71
L72:
.line 20
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,33
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L71
L73:
.line 21
;>>>> { j=*(hanzi+i);
LAR AR3,*+,AR3
MAR *0+
MAR *+
LAC * ,AR2
SACL *
.line 22
;>>>> k=(j>>8)|0xFF00;
LAC *+,7
ORK 65280,15
SACH * ,1
.line 23
;>>>> LCD_WRITE('B',k);
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 24
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,34
MAR *0+
OR *+
SACL * ,AR1
.line 25
;>>>> LCD_WRITE('B',k);
SACL *+
LACK 66
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 20
MAR * ,AR2
LARK AR2,33
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L73
.line 27
;>>>> break;
;>>>> case'C':
B L71
L75:
.line 30
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,33
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L71
L76:
.line 31
;>>>> { j=*(hanzi+i);
LAR AR3,*+,AR3
MAR *0+
MAR *+
LAC * ,AR2
SACL *
.line 32
;>>>> k=(j>>8)|0xFF00;
LAC *+,7
ORK 65280,15
SACH * ,1
.line 33
;>>>> LCD_WRITE('C',k);
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 34
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,34
MAR *0+
OR *+
SACL * ,AR1
.line 35
;>>>> LCD_WRITE('C',k);
SACL *+
LACK 67
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 30
MAR * ,AR2
LARK AR2,33
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L76
.line 37
;>>>> break;
B L71
.line 38
;>>>> default:break;
L67:
.line 8
SSXM
MAR * ,AR2
LARK AR2,-3+LF12
MAR *0+
LAC *
SUBK 65
BZ L68
SUBK 1
BZ L72
SUBK 1
BZ L75
L71:
EPI0_12:
.line 40
MAR * ,AR1
SBRK 37
LAR AR0,*-
PSHD *
RET
.endfunc 409,000000000H,36
.sym _LCD_HANZIHALFCON,_LCD_HANZIHALFCON,32,2,0
.globl _LCD_HANZIHALFCON
.func 410
;>>>> void LCD_HANZIHALFCON(char LCD_PART,const int *HANZI_ADD)
******************************************************
* FUNCTION DEF : _LCD_HANZIHALFCON
******************************************************
_LCD_HANZIHALFCON:
LF13 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _LCD_PART,-3+LF13,2,9,16
.sym _HANZI_ADD,-4+LF13,20,9,16
.sym _i,1,4,1,16
.sym _j,2,4,1,16
.sym _k,3,4,1,16
.line 2
;>>>> int i;
;>>>> int j;
;>>>> int k;
;>>>> switch(LCD_PART)
;>>>> { case'A':
B L79
L80:
.line 8
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L83
L81:
.line 9
;>>>> { j=*(HANZI_ADD+i);
LAC *
SBRK 5-LF13
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR2
ADRK 6-LF13
SACL *
.line 10
;>>>> k=(j>>8)|0xFF00;
LAC *+,7
ORK 65280,15
SACH * ,1
.line 11
;>>>> LCD_WRITE('A',k);
LAC * ,AR1
SACL *+
LACK 65
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 12
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,2
MAR *0+
OR *+
SACL * ,AR1
.line 13
;>>>> LCD_WRITE('A',k);
SACL *+
LACK 65
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 8
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L81
.line 15
;>>>> break;
;>>>> case'B':
B L83
L84:
.line 18
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L83
L85:
.line 19
;>>>> { j=*(HANZI_ADD+i);
LAC *
SBRK 5-LF13
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR2
ADRK 6-LF13
SACL *
.line 20
;>>>> k=(j>>8)|0xFF00;
LAC *+,7
ORK 65280,15
SACH * ,1
.line 21
;>>>> LCD_WRITE('B',k);
LAC * ,AR1
SACL *+
LACK 66
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 22
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,2
MAR *0+
OR *+
SACL * ,AR1
.line 23
;>>>> LCD_WRITE('B',k);
SACL *+
LACK 66
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 18
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L85
.line 25
;>>>> break;
;>>>> case'C':
B L83
L87:
.line 28
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 4
BGEZ L83
L88:
.line 29
;>>>> { j=*(HANZI_ADD+i);
LAC *
SBRK 5-LF13
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR2
ADRK 6-LF13
SACL *
.line 30
;>>>> k=(j>>8)|0xFF00;
LAC *+,7
ORK 65280,15
SACH * ,1
.line 31
;>>>> LCD_WRITE('C',k);
LAC * ,AR1
SACL *+
LACK 67
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 32
;>>>> k=j|0xFF00;
LACK 65280
MAR * ,AR2
LARK AR2,2
MAR *0+
OR *+
SACL * ,AR1
.line 33
;>>>> LCD_WRITE('C',k);
SACL *+
LACK 67
SACL *+
CALL _LCD_WRITE
SBRK 2
.line 28
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
SSXM
LAC *
SUBK 4
BLZ L88
.line 35
;>>>> break;
B L83
.line 36
;>>>> default:break;
L79:
.line 6
SSXM
MAR * ,AR2
LARK AR2,-3+LF13
MAR *0+
LAC *
SUBK 65
BZ L80
SUBK 1
BZ L84
SUBK 1
BZ L87
L83:
EPI0_13:
.line 38
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 447,000000000H,4
.sym _CON_HANZI,_CON_HANZI,100,2,0
.globl _CON_HANZI
.func 448
;>>>> int *CON_HANZI(int *HANZI_CON,const int *SOURCE_ADD)
******************************************************
* FUNCTION DEF : _CON_HANZI
******************************************************
_CON_HANZI:
LF14 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,19
LAR AR0,*0+
.sym _HANZI_CON,-3+LF14,20,9,16
.sym _SOURCE_ADD,-4+LF14,20,9,16
.sym _i,1,4,1,16
.sym _j,2,4,1,16
.sym _hanzi_con,3,52,1,256,,16
.line 2
;>>>> int i,j;
;>>>> int hanzi_con[16];
.line 5
;>>>> pdmemcpy((void *)hanzi_con, (void *)SOURCE_ADD, 16);
LACK 16
SACL *+,AR2
LARK AR2,-4+LF14
MAR *0+
LAC * ,AR1
SACL *+,AR3
LARK AR3,3
MAR *0+,AR1
SAR AR3,*+
CALL _pdmemcpy
SBRK 3
.line 6
;>>>> for(i=0;i<32;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 32
BGEZ L92
L91:
.line 7
;>>>> HANZI_CON[i]=0xFFFF-*(hanzi_con+i);
LAR AR3,* ,AR3
MAR *0+
LACK 65535
ADRK 3
SUB * ,AR1
SACL *+,AR2
LAC *
SBRK 4-LF14
ADD * ,AR0
SACL *
LAR AR3,* ,AR1
MAR *-
LAC * ,AR3
SACL * ,AR2
.line 6
ADRK 4-LF14
LAC *
ADDK 1
SACL *
LAC *
SUBK 32
BLZ L91
L92:
.line 9
;>>>> return(HANZI_CON);
SBRK 4-LF14
ZALS *
EPI0_14:
.line 10
MAR * ,AR1
SBRK 20
LAR AR0,*-
PSHD *
RET
.endfunc 457,000000000H,19
.sym _CON_HANZI2,_CON_HANZI2,100,2,0
.globl _CON_HANZI2
.func 459
;>>>> int *CON_HANZI2(int *HANZI_CON, int *SOURCE_ADD)
******************************************************
* FUNCTION DEF : _CON_HANZI2
******************************************************
_CON_HANZI2:
LF15 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,19
LAR AR0,*0+
.sym _HANZI_CON,-3+LF15,20,9,16
.sym _SOURCE_ADD,-4+LF15,20,9,16
.sym _i,1,4,1,16
.sym _j,2,4,1,16
.sym _hanzi_con,3,52,1,256,,16
.line 2
;>>>> int i,j;
;>>>> int hanzi_con[16];
.line 5
;>>>> pdmemcpy((void *)hanzi_con, (void *)SOURCE_ADD, 16);
LACK 16
SACL *+,AR2
LARK AR2,-4+LF15
MAR *0+
LAC * ,AR1
SACL *+,AR3
LARK AR3,3
MAR *0+,AR1
SAR AR3,*+
CALL _pdmemcpy
SBRK 3
.line 6
;>>>> for(i=0;i<32;i++)
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SSXM
LAC *
SUBK 32
BGEZ L94
L93:
.line 7
;>>>> HANZI_CON[i]=0xFFFF-*(hanzi_con+i);
LAR AR3,* ,AR3
MAR *0+
LACK 65535
ADRK 3
SUB * ,AR1
SACL *+,AR2
LAC *
SBRK 4-LF15
ADD * ,AR0
SACL *
LAR AR3,* ,AR1
MAR *-
LAC * ,AR3
SACL * ,AR2
.line 6
ADRK 4-LF15
LAC *
ADDK 1
SACL *
LAC *
SUBK 32
BLZ L93
L94:
.line 9
;>>>> return(HANZI_CON);
SBRK 4-LF15
ZALS *
EPI0_15:
.line 10
MAR * ,AR1
SBRK 20
LAR AR0,*-
PSHD *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -