📄 lcd_ascii.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--debug -c --asm --interleave -olcd_ascii.o --depend=lcd_ascii.d --device=DARMP --apcs=interwork -O3 -IC:\Keil\ARM\INC\Philips --omf_browse=lcd_ascii.crf LCD_ASCII.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
Dis_Ascii_12 PROC
;;;225 void Dis_Ascii_12(uint16 x,uint16 y,uint8 ch)
;;;226 {
000000 e92d5ff0 PUSH {r4-r12,lr}
000004 e1a05001 MOV r5,r1
;;;227 uint8 i,j;
;;;228 uint8 temp;
;;;229 for(i=0;i<6;i++)
000008 e59f1390 LDR r1,|L1.928|
00000c e1a09000 MOV r9,r0 ;226
000010 e0820082 ADD r0,r2,r2,LSL #1
000014 e3a06000 MOV r6,#0
000018 e0817100 ADD r7,r1,r0,LSL #2
00001c e3a08001 MOV r8,#1
|L1.32|
;;;230 {
;;;231 temp = CTAB_12[ch-0x20][i];
000020 e0870006 ADD r0,r7,r6
000024 e550b180 LDRB r11,[r0,#-0x180]
;;;232 for(j=0;j<8;j++)
000028 e3a04000 MOV r4,#0
00002c e089a006 ADD r10,r9,r6
|L1.48|
;;;233 {
;;;234 if(temp&(1<<j))OnePixel(x+i,y+j,1);
000030 e11b0418 TST r11,r8,LSL r4
000034 e0850004 ADD r0,r5,r4
000038 e20010ff AND r1,r0,#0xff
00003c e20a00ff AND r0,r10,#0xff
;;;235 else OnePixel(x+i,y+j,0);
000040 03a02000 MOVEQ r2,#0
000044 13a02001 MOVNE r2,#1 ;234
000048 ebfffffe BL OnePixel
00004c e2840001 ADD r0,r4,#1 ;232
000050 e20040ff AND r4,r0,#0xff ;232
000054 e3540008 CMP r4,#8 ;232
000058 3afffff4 BCC |L1.48|
00005c e2860001 ADD r0,r6,#1 ;229
000060 e20060ff AND r6,r0,#0xff ;229
000064 e3560006 CMP r6,#6 ;229
000068 3affffec BCC |L1.32|
;;;236 }
;;;237 }
;;;238 for(i=0;i<6;i++)
00006c e3a06000 MOV r6,#0
|L1.112|
;;;239 {
;;;240 temp = CTAB_12[ch-0x20][i+6];
000070 e0870006 ADD r0,r7,r6
000074 e550b17a LDRB r11,[r0,#-0x17a]
;;;241 for(j=0;j<4;j++)
000078 e3a04000 MOV r4,#0
00007c e089a006 ADD r10,r9,r6
|L1.128|
;;;242 {
;;;243 if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
000080 e11b0418 TST r11,r8,LSL r4
000084 e0850004 ADD r0,r5,r4
000088 e2800008 ADD r0,r0,#8
00008c e20010ff AND r1,r0,#0xff
000090 e20a00ff AND r0,r10,#0xff
;;;244 else OnePixel(x+i,y+j+8,0);
000094 03a02000 MOVEQ r2,#0
000098 13a02001 MOVNE r2,#1 ;243
00009c ebfffffe BL OnePixel
0000a0 e2840001 ADD r0,r4,#1 ;241
0000a4 e20040ff AND r4,r0,#0xff ;241
0000a8 e3540004 CMP r4,#4 ;241
0000ac 3afffff3 BCC |L1.128|
0000b0 e2860001 ADD r0,r6,#1 ;238
0000b4 e20060ff AND r6,r0,#0xff ;238
0000b8 e3560006 CMP r6,#6 ;238
0000bc 3affffeb BCC |L1.112|
;;;245 }
;;;246 }
;;;247 }
0000c0 e8bd5ff0 POP {r4-r12,lr}
0000c4 e12fff1e BX lr
;;;248
ENDP
Dis_Ascii_12_fast PROC
;;;249 void Dis_Ascii_12_fast(uint16 x,uint16 y,uint8 ch)
;;;250 {
0000c8 e92d4070 PUSH {r4-r6,lr}
0000cc e1a04000 MOV r4,r0
0000d0 e1a00001 MOV r0,r1
0000d4 e1a05002 MOV r5,r2
;;;251 uint16 i,j;
;;;252 uint8 temp;
;;;253
;;;254 extern uint8 disBuf[504];
;;;255 // disBuf[(y/8)*84 + x +i] = temp;
;;;256 j = y/12;
0000d8 e3a0100c MOV r1,#0xc
0000dc ebfffffe BL __aeabi_uidivmod
0000e0 e59f12b8 LDR r1,|L1.928|
0000e4 e59f32b8 LDR r3,|L1.932|
0000e8 e085c085 ADD r12,r5,r5,LSL #1
;;;257 if(j==0)
0000ec e3500000 CMP r0,#0
0000f0 e284e054 ADD lr,r4,#0x54 ;256
0000f4 e284205a ADD r2,r4,#0x5a ;256
0000f8 e081110c ADD r1,r1,r12,LSL #2 ;256
0000fc 1a000017 BNE |L1.352|
;;;258 {
;;;259 for(i=x;i<x+6;i++)
000100 e1a00004 MOV r0,r4
000104 e2845006 ADD r5,r4,#6
|L1.264|
000108 e1500005 CMP r0,r5
;;;260 {
;;;261 temp = CTAB_12[ch-0x20][i-x];
00010c 3040c004 SUBCC r12,r0,r4
000110 308cc001 ADDCC r12,r12,r1
000114 355cc180 LDRBCC r12,[r12,#-0x180]
;;;262 disBuf[i] = temp;
000118 37c3c000 STRBCC r12,[r3,r0]
00011c 32800001 ADDCC r0,r0,#1 ;259
000120 33c00801 BICCC r0,r0,#0x10000 ;259
000124 3afffff7 BCC |L1.264|
;;;263 }
;;;264 for(i=x+84;i<x+84+6;i++)
000128 e3ce0801 BIC r0,lr,#0x10000
|L1.300|
00012c e1500002 CMP r0,r2
000130 2a000067 BCS |L1.724|
;;;265 {
;;;266 temp = CTAB_12[ch-0x20][i-x+6-84];
000134 e040c004 SUB r12,r0,r4
000138 e08cc001 ADD r12,r12,r1
00013c e55ce1ce LDRB lr,[r12,#-0x1ce]
;;;267 disBuf[i] &= 0xf0;
000140 e7d3c000 LDRB r12,[r3,r0]
;;;268 disBuf[i] |= (temp & 0x0f);
000144 e20ee00f AND lr,lr,#0xf
000148 e20cc0f0 AND r12,r12,#0xf0 ;267
00014c e18cc00e ORR r12,r12,lr
000150 e7c3c000 STRB r12,[r3,r0]
000154 e2800001 ADD r0,r0,#1 ;264
000158 e3c00801 BIC r0,r0,#0x10000 ;264
00015c eafffff2 B |L1.300|
|L1.352|
;;;269 }
;;;270 }
;;;271 else if(j==1)
000160 e3500001 CMP r0,#1
000164 e3a050f0 MOV r5,#0xf0 ;264
000168 1a00001b BNE |L1.476|
;;;272 {
;;;273 for(i=x+84;i<x+84+6;i++)
00016c e3ce0801 BIC r0,lr,#0x10000
|L1.368|
000170 e1500002 CMP r0,r2
;;;274 {
;;;275 temp = CTAB_12[ch-0x20][i-x-84];
000174 3040c004 SUBCC r12,r0,r4
000178 308cc001 ADDCC r12,r12,r1
00017c 355ce1d4 LDRBCC lr,[r12,#-0x1d4]
;;;276 disBuf[i] &= 0x0f;
000180 37d3c000 LDRBCC r12,[r3,r0]
;;;277 disBuf[i] |= ((temp<<4) & 0xf0);
000184 3005e20e ANDCC lr,r5,lr,LSL #4
000188 320cc00f ANDCC r12,r12,#0xf ;276
00018c 318cc00e ORRCC r12,r12,lr
000190 37c3c000 STRBCC r12,[r3,r0]
000194 32800001 ADDCC r0,r0,#1 ;273
000198 33c00801 BICCC r0,r0,#0x10000 ;273
00019c 3afffff3 BCC |L1.368|
;;;278 }
;;;279 for(i=x+168;i<x+168+6;i++)
0001a0 e28400a8 ADD r0,r4,#0xa8
0001a4 e3c00801 BIC r0,r0,#0x10000
0001a8 e284c0ae ADD r12,r4,#0xae
|L1.428|
0001ac e150000c CMP r0,r12
0001b0 2a000047 BCS |L1.724|
;;;280 {
;;;281 temp = CTAB_12[ch-0x20][i-x-168]>>4;
0001b4 e0402004 SUB r2,r0,r4
0001b8 e0822001 ADD r2,r2,r1
0001bc e5525228 LDRB r5,[r2,#-0x228]
;;;282 temp += CTAB_12[ch-0x20][i-x+6-168]<<4;
0001c0 e552e222 LDRB lr,[r2,#-0x222]
0001c4 e1a02225 LSR r2,r5,#4 ;281
0001c8 e082220e ADD r2,r2,lr,LSL #4
;;;283 disBuf[i] = temp;
0001cc e7c32000 STRB r2,[r3,r0]
0001d0 e2800001 ADD r0,r0,#1 ;279
0001d4 e3c00801 BIC r0,r0,#0x10000 ;279
0001d8 eafffff3 B |L1.428|
|L1.476|
0001dc e2842c01 ADD r2,r4,#0x100 ;279
;;;284 }
;;;285 }
;;;286 else if(j==2)
0001e0 e3500002 CMP r0,#2
0001e4 e284ee15 ADD lr,r4,#0x150 ;279
0001e8 e2822056 ADD r2,r2,#0x56 ;279
0001ec 1a000019 BNE |L1.600|
;;;287 {
;;;288 for(i=x+252;i<x+6+252;i++)
0001f0 e28400fc ADD r0,r4,#0xfc
0001f4 e2845c01 ADD r5,r4,#0x100
0001f8 e3c00801 BIC r0,r0,#0x10000
0001fc e2855002 ADD r5,r5,#2
|L1.512|
000200 e1500005 CMP r0,r5
;;;289 {
;;;290 temp = CTAB_12[ch-0x20][i-x-252];
000204 3040c004 SUBCC r12,r0,r4
000208 308cc001 ADDCC r12,r12,r1
00020c 355cc27c LDRBCC r12,[r12,#-0x27c]
;;;291 disBuf[i] = temp;
000210 37c3c000 STRBCC r12,[r3,r0]
000214 32800001 ADDCC r0,r0,#1 ;288
000218 33c00801 BICCC r0,r0,#0x10000 ;288
00021c 3afffff7 BCC |L1.512|
;;;292 }
;;;293 for(i=x+336;i<x+336+6;i++)
000220 e3ce0801 BIC r0,lr,#0x10000
|L1.548|
000224 e1500002 CMP r0,r2
000228 2a000029 BCS |L1.724|
;;;294 {
;;;295 temp = CTAB_12[ch-0x20][i-x+6-336];
00022c e040c004 SUB r12,r0,r4
000230 e08cc001 ADD r12,r12,r1
000234 e55ce2ca LDRB lr,[r12,#-0x2ca]
;;;296 disBuf[i] &= 0xf0;
000238 e7d3c000 LDRB r12,[r3,r0]
;;;297 disBuf[i] |= (temp & 0x0f);
00023c e20ee00f AND lr,lr,#0xf
000240 e20cc0f0 AND r12,r12,#0xf0 ;296
000244 e18cc00e ORR r12,r12,lr
000248 e7c3c000 STRB r12,[r3,r0]
00024c e2800001 ADD r0,r0,#1 ;293
000250 e3c00801 BIC r0,r0,#0x10000 ;293
000254 eafffff2 B |L1.548|
|L1.600|
;;;298 }
;;;299 }
;;;300 else if(j==3)
000258 e3500003 CMP r0,#3
00025c 1a00001c BNE |L1.724|
;;;301 {
;;;302 for(i=x+336;i<x+336+6;i++)
000260 e3ce0801 BIC r0,lr,#0x10000
|L1.612|
000264 e1500002 CMP r0,r2
;;;303 {
;;;304 temp = CTAB_12[ch-0x20][i-x-336];
000268 3040c004 SUBCC r12,r0,r4
00026c 308cc001 ADDCC r12,r12,r1
000270 355ce2d0 LDRBCC lr,[r12,#-0x2d0]
;;;305 disBuf[i] &= 0x0f;
000274 37d3c000 LDRBCC r12,[r3,r0]
;;;306 disBuf[i] |= ((temp<<4) & 0xf0);
000278 3005e20e ANDCC lr,r5,lr,LSL #4
00027c 320cc00f ANDCC r12,r12,#0xf ;305
000280 318cc00e ORRCC r12,r12,lr
000284 37c3c000 STRBCC r12,[r3,r0]
000288 32800001 ADDCC r0,r0,#1 ;302
00028c 33c00801 BICCC r0,r0,#0x10000 ;302
000290 3afffff3 BCC |L1.612|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -