📄 lcd_app.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--debug -c --asm --interleave -olcd_app.o --depend=lcd_app.d --device=DARMP --apcs=interwork -O3 -IC:\Keil\ARM\INC\Philips --omf_browse=lcd_app.crf LCD_APP.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
Print_ICON_12 PROC
;;;22 void Print_ICON_12(uint16 x,uint16 y,uint8 ch)
;;;23 {
000000 e92d5ff0 PUSH {r4-r12,lr}
000004 e1a05001 MOV r5,r1
;;;24 uint8 i,j;
;;;25 uint8 temp;
;;;26 for(i=0;i<12;i++)
000008 e59f1ab8 LDR r1,|L1.2760|
00000c e1a09000 MOV r9,r0 ;23
000010 e0820082 ADD r0,r2,r2,LSL #1
000014 e3a06000 MOV r6,#0
000018 e0817180 ADD r7,r1,r0,LSL #3
00001c e3a08001 MOV r8,#1
|L1.32|
;;;27 {
;;;28 temp = ICON[ch][i];
000020 e7d7b006 LDRB r11,[r7,r6]
;;;29 for(j=0;j<8;j++)
000024 e3a04000 MOV r4,#0
000028 e089a006 ADD r10,r9,r6
|L1.44|
;;;30 {
;;;31 if(temp&(1<<j))OnePixel(x+i,y+j,1);
00002c e11b0418 TST r11,r8,LSL r4
000030 e0850004 ADD r0,r5,r4
000034 e20010ff AND r1,r0,#0xff
000038 e20a00ff AND r0,r10,#0xff
;;;32 else OnePixel(x+i,y+j,0);
00003c 03a02000 MOVEQ r2,#0
000040 13a02001 MOVNE r2,#1 ;31
000044 ebfffffe BL OnePixel
000048 e2840001 ADD r0,r4,#1 ;29
00004c e20040ff AND r4,r0,#0xff ;29
000050 e3540008 CMP r4,#8 ;29
000054 3afffff4 BCC |L1.44|
000058 e2860001 ADD r0,r6,#1 ;26
00005c e20060ff AND r6,r0,#0xff ;26
000060 e356000c CMP r6,#0xc ;26
000064 3affffed BCC |L1.32|
;;;33 }
;;;34 }
;;;35 for(i=0;i<12;i++)
000068 e3a06000 MOV r6,#0
|L1.108|
;;;36 {
;;;37 temp = ICON[ch][i+12];
00006c e0870006 ADD r0,r7,r6
000070 e5d0b00c LDRB r11,[r0,#0xc]
;;;38 for(j=0;j<4;j++)
000074 e3a04000 MOV r4,#0
000078 e089a006 ADD r10,r9,r6
|L1.124|
;;;39 {
;;;40 if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
00007c e11b0418 TST r11,r8,LSL r4
000080 e0850004 ADD r0,r5,r4
000084 e2800008 ADD r0,r0,#8
000088 e20010ff AND r1,r0,#0xff
00008c e20a00ff AND r0,r10,#0xff
;;;41 else OnePixel(x+i,y+j+8,0);
000090 03a02000 MOVEQ r2,#0
000094 13a02001 MOVNE r2,#1 ;40
000098 ebfffffe BL OnePixel
00009c e2840001 ADD r0,r4,#1 ;38
0000a0 e20040ff AND r4,r0,#0xff ;38
0000a4 e3540004 CMP r4,#4 ;38
0000a8 3afffff3 BCC |L1.124|
0000ac e2860001 ADD r0,r6,#1 ;35
0000b0 e20060ff AND r6,r0,#0xff ;35
0000b4 e356000c CMP r6,#0xc ;35
0000b8 3affffeb BCC |L1.108|
;;;42 }
;;;43 }
;;;44 }
0000bc e8bd5ff0 POP {r4-r12,lr}
0000c0 e12fff1e BX lr
;;;45
ENDP
Print_ICON1_12 PROC
;;;46 void Print_ICON1_12(uint16 x,uint16 y,uint8 ch)
;;;47 {
0000c4 e92d5ff0 PUSH {r4-r12,lr}
0000c8 e1a05001 MOV r5,r1
;;;48 uint8 i,j;
;;;49 uint8 temp;
;;;50 for(i=0;i<6;i++)
0000cc e59f19f8 LDR r1,|L1.2764|
0000d0 e1a09000 MOV r9,r0 ;47
0000d4 e0820082 ADD r0,r2,r2,LSL #1
0000d8 e3a06000 MOV r6,#0
0000dc e0817100 ADD r7,r1,r0,LSL #2
0000e0 e3a08001 MOV r8,#1
|L1.228|
;;;51 {
;;;52 temp =ICON1[ch][i];
0000e4 e7d7b006 LDRB r11,[r7,r6]
;;;53 for(j=0;j<8;j++)
0000e8 e3a04000 MOV r4,#0
0000ec e089a006 ADD r10,r9,r6
|L1.240|
;;;54 {
;;;55 if(temp&(1<<j))OnePixel(x+i,y+j,1);
0000f0 e11b0418 TST r11,r8,LSL r4
0000f4 e0850004 ADD r0,r5,r4
0000f8 e20010ff AND r1,r0,#0xff
0000fc e20a00ff AND r0,r10,#0xff
;;;56 else OnePixel(x+i,y+j,0);
000100 03a02000 MOVEQ r2,#0
000104 13a02001 MOVNE r2,#1 ;55
000108 ebfffffe BL OnePixel
00010c e2840001 ADD r0,r4,#1 ;53
000110 e20040ff AND r4,r0,#0xff ;53
000114 e3540008 CMP r4,#8 ;53
000118 3afffff4 BCC |L1.240|
00011c e2860001 ADD r0,r6,#1 ;50
000120 e20060ff AND r6,r0,#0xff ;50
000124 e3560006 CMP r6,#6 ;50
000128 3affffed BCC |L1.228|
;;;57 }
;;;58 }
;;;59 for(i=0;i<6;i++)
00012c e3a06000 MOV r6,#0
|L1.304|
;;;60 {
;;;61 temp = ICON1[ch][i+6];
000130 e0870006 ADD r0,r7,r6
000134 e5d0b006 LDRB r11,[r0,#6]
;;;62 for(j=0;j<4;j++)
000138 e3a04000 MOV r4,#0
00013c e089a006 ADD r10,r9,r6
|L1.320|
;;;63 {
;;;64 if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
000140 e11b0418 TST r11,r8,LSL r4
000144 e0850004 ADD r0,r5,r4
000148 e2800008 ADD r0,r0,#8
00014c e20010ff AND r1,r0,#0xff
000150 e20a00ff AND r0,r10,#0xff
;;;65 else OnePixel(x+i,y+j+8,0);
000154 03a02000 MOVEQ r2,#0
000158 13a02001 MOVNE r2,#1 ;64
00015c ebfffffe BL OnePixel
000160 e2840001 ADD r0,r4,#1 ;62
000164 e20040ff AND r4,r0,#0xff ;62
000168 e3540004 CMP r4,#4 ;62
00016c 3afffff3 BCC |L1.320|
000170 e2860001 ADD r0,r6,#1 ;59
000174 e20060ff AND r6,r0,#0xff ;59
000178 e3560006 CMP r6,#6 ;59
00017c 3affffeb BCC |L1.304|
;;;66 }
;;;67 }
;;;68 }
000180 e8bd5ff0 POP {r4-r12,lr}
000184 e12fff1e BX lr
;;;69
ENDP
LCD_print12_P PROC
;;;70 uint8 LCD_print12_P(uint16 x,uint16 y,uint8 *str)
;;;71 {
000188 e92d40f8 PUSH {r3-r7,lr}
00018c e1a06002 MOV r6,r2
;;;72 uint16 tempX = x,tempY = y;
000190 e1a04000 MOV r4,r0
000194 e1a05001 MOV r5,r1
;;;73 uint16 temp;
;;;74 while(temp = *str)
000198 ea000046 B |L1.696|
|L1.412|
;;;75 {
;;;76 if(temp == '\n')
00019c e1dd00b0 LDRH r0,[sp,#0]
0001a0 e350000a CMP r0,#0xa
0001a4 1a00000f BNE |L1.488|
;;;77 {
;;;78 if((MAX_X - tempX)<6)
0001a8 e2640054 RSB r0,r4,#0x54
0001ac e3500006 CMP r0,#6
0001b0 aa000007 BGE |L1.468|
;;;79 {
;;;80 tempX = 0;
;;;81 if((MAX_Y - tempY)<24)return 1;
0001b4 e2650030 RSB r0,r5,#0x30
0001b8 e3500018 CMP r0,#0x18
0001bc e3a04000 MOV r4,#0 ;80
0001c0 ba00002d BLT |L1.636|
|L1.452|
;;;82 else tempY += 12;
0001c4 e285000c ADD r0,r5,#0xc
0001c8 e3c05801 BIC r5,r0,#0x10000
;;;83 }
;;;84 else if((MAX_Y - tempY)<24)return 1;
;;;85 else
;;;86 {
;;;87 tempX = 0;
;;;88 tempY += 12;
;;;89 }
;;;90 str ++;
0001cc e2866001 ADD r6,r6,#1
0001d0 ea000038 B |L1.696|
|L1.468|
0001d4 e2650030 RSB r0,r5,#0x30 ;84
0001d8 e3500018 CMP r0,#0x18 ;84
0001dc a3a04000 MOVGE r4,#0 ;87
0001e0 aafffff7 BGE |L1.452|
0001e4 ea000024 B |L1.636|
|L1.488|
;;;91 }
;;;92 else if(temp<0x20)
0001e8 e3500020 CMP r0,#0x20
0001ec 2a00000a BCS |L1.540|
;;;93 {
;;;94 if((MAX_X - tempX)<6)
0001f0 e2640054 RSB r0,r4,#0x54
0001f4 e3500006 CMP r0,#6
0001f8 aa000005 BGE |L1.532|
;;;95 {
;;;96 tempX = 0;
;;;97 if((MAX_Y - tempY)<24)return 1;
0001fc e2650030 RSB r0,r5,#0x30
000200 e3500018 CMP r0,#0x18
000204 e3a04000 MOV r4,#0 ;96
000208 ba00001b BLT |L1.636|
;;;98 else tempY += 12;
00020c e285000c ADD r0,r5,#0xc
000210 e3c05801 BIC r5,r0,#0x10000
|L1.532|
;;;99 }
;;;100 Dis_Ascii_12(tempX,tempY,0x20);
000214 e3a02020 MOV r2,#0x20
;;;101 str ++;
;;;102 tempX += 6;
000218 ea00000b B |L1.588|
|L1.540|
;;;103
;;;104 }
;;;105 else if(temp<0x80)
00021c e3500080 CMP r0,#0x80
;;;106 {
;;;107 if((MAX_X - tempX)<6)
000220 e2641054 RSB r1,r4,#0x54
000224 2a00000e BCS |L1.612|
000228 e3510006 CMP r1,#6
00022c aa000005 BGE |L1.584|
;;;108 {
;;;109 tempX = 0;
;;;110 if((MAX_Y - tempY)<24)return 1;
000230 e2651030 RSB r1,r5,#0x30
000234 e3510018 CMP r1,#0x18
000238 e3a04000 MOV r4,#0 ;109
00023c ba00000e BLT |L1.636|
;;;111 else tempY += 12;
000240 e285100c ADD r1,r5,#0xc
000244 e3c15801 BIC r5,r1,#0x10000
|L1.584|
;;;112 }
;;;113 Dis_Ascii_12(tempX,tempY,temp);
000248 e20020ff AND r2,r0,#0xff
|L1.588|
00024c e1a01005 MOV r1,r5 ;100
000250 e1a00004 MOV r0,r4 ;100
000254 ebfffffe BL Dis_Ascii_12
000258 e2866001 ADD r6,r6,#1 ;101
00025c e2840006 ADD r0,r4,#6 ;102
000260 ea000013 B |L1.692|
|L1.612|
;;;114 str ++;
;;;115 tempX += 6;
;;;116 }
;;;117 else
;;;118 {
;;;119 if((MAX_X - tempX)<12)
000264 e351000c CMP r1,#0xc
000268 aa000008 BGE |L1.656|
;;;120 {
;;;121 tempX = 0;
;;;122 if((MAX_Y - tempY)<24)return 1;
00026c e2651030 RSB r1,r5,#0x30
000270 e3510018 CMP r1,#0x18
000274 e3a04000 MOV r4,#0 ;121
000278 aa000002 BGE |L1.648|
|L1.636|
00027c e3a00001 MOV r0,#1
|L1.640|
000280 e8bd40f8 POP {r3-r7,lr}
;;;123 else tempY += 12;
;;;124 }
;;;125 temp += (*(++str))<<8;
;;;126 Dis_GBK12(tempX,tempY,(uint8 *)(&temp));
;;;127 str ++;
;;;128 tempX += 12;
;;;129 }
;;;130 }
;;;131 return 0;
;;;132 }
000284 e12fff1e BX lr
|L1.648|
000288 e285100c ADD r1,r5,#0xc ;123
00028c e3c15801 BIC r5,r1,#0x10000 ;123
|L1.656|
000290 e5f61001 LDRB r1,[r6,#1]! ;125
000294 e28d2000 ADD r2,sp,#0 ;126
000298 e0800401 ADD r0,r0,r1,LSL #8 ;125
00029c e58d0000 STR r0,[sp,#0] ;125
0002a0 e1a01005 MOV r1,r5 ;126
0002a4 e1a00004 MOV r0,r4 ;126
0002a8 ebfffffe BL Dis_GBK12
0002ac e2866001 ADD r6,r6,#1 ;127
0002b0 e284000c ADD r0,r4,#0xc ;128
|L1.692|
0002b4 e3c04801 BIC r4,r0,#0x10000 ;115
|L1.696|
0002b8 e5d60000 LDRB r0,[r6,#0] ;74
0002bc e3500000 CMP r0,#0 ;74
0002c0 e58d0000 STR r0,[sp,#0] ;74
0002c4 1affffb4 BNE |L1.412|
0002c8 eaffffec B |L1.640|
;;;133
ENDP
LCD_print12_fast PROC
;;;134 uint8 LCD_print12_fast(uint16 x,uint16 y,uint8 *str)
;;;135 {
0002cc e92d4070 PUSH {r4-r6,lr}
0002d0 e1a06002 MOV r6,r2
;;;136 uint16 tempX = x,tempY = y;
0002d4 e1a04000 MOV r4,r0
0002d8 e1a05001 MOV r5,r1
;;;137 while(*str)
0002dc ea000041 B |L1.1000|
|L1.736|
;;;138 {
;;;139 if(*str == '\n')
0002e0 e352000a CMP r2,#0xa
0002e4 1a00000f BNE |L1.808|
;;;140 {
;;;141 if((MAX_X - tempX)<6)
0002e8 e2640054 RSB r0,r4,#0x54
0002ec e3500006 CMP r0,#6
0002f0 aa000007 BGE |L1.788|
;;;142 {
;;;143 tempX = 0;
;;;144 if((MAX_Y - tempY)<24)return 1;
0002f4 e2650030 RSB r0,r5,#0x30
0002f8 e3500018 CMP r0,#0x18
0002fc e3a04000 MOV r4,#0 ;143
000300 ba00002c BLT |L1.952|
|L1.772|
;;;145 else tempY += 12;
000304 e285000c ADD r0,r5,#0xc
000308 e3c05801 BIC r5,r0,#0x10000
;;;146 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -