📄 lcddummy.txt
字号:
;;;256 do {
;;;257 int Shift = (1 - CurrentPixel) << 2;
;;;258 int Index = (Pixels & (0xF0 >> (4 - Shift))) >> Shift;
000012 21f0 MOVS r1,#0xf0
000014 4616 MOV r6,r2 ;247
000016 461c MOV r4,r3 ;249
000018 f0100003 ANDS r0,r0,#3 ;251
00001c d006 BEQ |L16.44|
00001e 2802 CMP r0,#2 ;251
000020 d123 BNE |L16.106|
;;;259 LCD_PIXELINDEX PixelIndex = *(pTrans + Index);
;;;260 LCD_L0_SetPixelIndex(x++, y, PixelIndex);
;;;261 if (++CurrentPixel == 2)
;;;262 {
;;;263 CurrentPixel = 0;
;;;264 Pixels = *(++p);
;;;265 }
;;;266 } while (--xsize);
;;;267 }
;;;268 else
;;;269 {
;;;270 do{
;;;271 int Shift = (1 - CurrentPixel) << 2;
;;;272 int Index = (Pixels & (0xF0 >> (4 - Shift))) >> Shift;
;;;273 LCD_L0_SetPixelIndex(x++, y, Index);
;;;274 if(++CurrentPixel == 2)
;;;275 {
;;;276 CurrentPixel = 0;
;;;277 Pixels = *(++p);
;;;278 }
;;;279 } while (--xsize);
;;;280 }
;;;281 break;
;;;282 case LCD_DRAWMODE_TRANS:
;;;283 if(pTrans)
000022 f1b90f00 CMP r9,#0
000026 d05a BEQ |L16.222|
000028 468a MOV r10,r1 ;258
;;;284 {
;;;285 do {
00002a e03b B |L16.164|
|L16.44|
00002c f1b90f00 CMP r9,#0 ;254
000030 d01d BEQ |L16.110|
000032 468a MOV r10,r1 ;258
|L16.52|
000034 f1c40001 RSB r0,r4,#1 ;257
000038 0080 LSLS r0,r0,#2 ;257
00003a f1c00204 RSB r2,r0,#4 ;258
00003e fa2af102 LSR r1,r10,r2 ;258
000042 4039 ANDS r1,r1,r7 ;258
000044 40c1 LSRS r1,r1,r0 ;258
000046 f8392011 LDRH r2,[r9,r1,LSL #1] ;259
00004a 4628 MOV r0,r5 ;260
00004c 1c6d ADDS r5,r5,#1 ;260
00004e 4659 MOV r1,r11 ;260
000050 f7fffffe BL LCD_L0_SetPixelIndex
000054 1c64 ADDS r4,r4,#1 ;261
000056 2c02 CMP r4,#2 ;261
000058 d102 BNE |L16.96|
00005a f8167f01 LDRB r7,[r6,#1]! ;264
00005e 2400 MOVS r4,#0 ;263
|L16.96|
000060 f1a80001 SUB r0,r8,#1 ;266
000064 ea5f0800 MOVS r8,r0 ;266
000068 d1e4 BNE |L16.52|
|L16.106|
;;;286 int Shift = (1 - CurrentPixel) << 2;
;;;287 int Index = (Pixels & (0xF0 >> (4 - Shift))) >> Shift;
;;;288 if(Index)
;;;289 {
;;;290 LCD_PIXELINDEX PixelIndex = *(pTrans + Index);
;;;291 LCD_L0_SetPixelIndex(x, y, PixelIndex);
;;;292 }
;;;293 x++;
;;;294 if(++CurrentPixel == 2)
;;;295 {
;;;296 CurrentPixel = 0;
;;;297 Pixels = *(++p);
;;;298 }
;;;299 }while(--xsize);
;;;300 }
;;;301 else
;;;302 {
;;;303 do {
;;;304 int Shift = (1 - CurrentPixel) << 2;
;;;305 int Index = (Pixels & (0xF0 >> (4 - Shift))) >> Shift;
;;;306 if(Index)
;;;307 {
;;;308 LCD_L0_SetPixelIndex(x, y,Index);
;;;309 }
;;;310 x++;
;;;311 if (++CurrentPixel == 2)
;;;312 {
;;;313 CurrentPixel = 0;
;;;314 Pixels = *(++p);
;;;315 }
;;;316 } while (--xsize);
;;;317 }
;;;318 break;
;;;319 }
;;;320 }
00006a e8bd9ff0 POP {r4-r12,pc}
|L16.110|
00006e 4689 MOV r9,r1 ;258
|L16.112|
000070 f1c40001 RSB r0,r4,#1 ;271
000074 0080 LSLS r0,r0,#2 ;271
000076 f1c00104 RSB r1,r0,#4 ;272
00007a fa29f201 LSR r2,r9,r1 ;272
00007e 403a ANDS r2,r2,r7 ;272
000080 40c2 LSRS r2,r2,r0 ;272
000082 4628 MOV r0,r5 ;273
000084 1c6d ADDS r5,r5,#1 ;273
000086 4659 MOV r1,r11 ;273
000088 f7fffffe BL LCD_L0_SetPixelIndex
00008c 1c64 ADDS r4,r4,#1 ;274
00008e 2c02 CMP r4,#2 ;274
000090 d102 BNE |L16.152|
000092 f8167f01 LDRB r7,[r6,#1]! ;277
000096 2400 MOVS r4,#0 ;276
|L16.152|
000098 f1a80001 SUB r0,r8,#1 ;279
00009c ea5f0800 MOVS r8,r0 ;279
0000a0 d1e6 BNE |L16.112|
0000a2 e7e2 B |L16.106|
|L16.164|
0000a4 f1c40001 RSB r0,r4,#1 ;286
0000a8 0080 LSLS r0,r0,#2 ;286
0000aa f1c00204 RSB r2,r0,#4 ;287
0000ae fa2af102 LSR r1,r10,r2 ;287
0000b2 4039 ANDS r1,r1,r7 ;287
0000b4 40c1 LSRS r1,r1,r0 ;287
0000b6 d005 BEQ |L16.196|
0000b8 f8392011 LDRH r2,[r9,r1,LSL #1] ;290
0000bc 4659 MOV r1,r11 ;291
0000be 4628 MOV r0,r5 ;291
0000c0 f7fffffe BL LCD_L0_SetPixelIndex
|L16.196|
0000c4 1c6d ADDS r5,r5,#1 ;293
0000c6 1c64 ADDS r4,r4,#1 ;294
0000c8 2c02 CMP r4,#2 ;294
0000ca d102 BNE |L16.210|
0000cc f8167f01 LDRB r7,[r6,#1]! ;297
0000d0 2400 MOVS r4,#0 ;296
|L16.210|
0000d2 f1a80001 SUB r0,r8,#1 ;299
0000d6 ea5f0800 MOVS r8,r0 ;299
0000da d1e3 BNE |L16.164|
0000dc e7c5 B |L16.106|
|L16.222|
0000de 4689 MOV r9,r1 ;258
|L16.224|
0000e0 f1c40001 RSB r0,r4,#1 ;304
0000e4 0080 LSLS r0,r0,#2 ;304
0000e6 f1c00104 RSB r1,r0,#4 ;305
0000ea fa29f201 LSR r2,r9,r1 ;305
0000ee 403a ANDS r2,r2,r7 ;305
0000f0 40c2 LSRS r2,r2,r0 ;305
0000f2 d003 BEQ |L16.252|
0000f4 4659 MOV r1,r11 ;308
0000f6 4628 MOV r0,r5 ;308
0000f8 f7fffffe BL LCD_L0_SetPixelIndex
|L16.252|
0000fc 1c6d ADDS r5,r5,#1 ;310
0000fe 1c64 ADDS r4,r4,#1 ;311
000100 2c02 CMP r4,#2 ;311
000102 d102 BNE |L16.266|
000104 f8167f01 LDRB r7,[r6,#1]! ;314
000108 2400 MOVS r4,#0 ;313
|L16.266|
00010a f1a80001 SUB r0,r8,#1 ;316
00010e ea5f0800 MOVS r8,r0 ;316
000112 d1e5 BNE |L16.224|
000114 e7a9 B |L16.106|
;;;321 #endif
ENDP
000116 0000 DCW 0x0000
|L16.280|
DCD GUI_Context
AREA ||i._DrawBitLine8BPP||, CODE, READONLY, ALIGN=2
_DrawBitLine8BPP PROC
;;;327 #if (LCD_MAX_LOG_COLORS > 16)
;;;328 static void _DrawBitLine8BPP(int x,int y,U8 const GUI_UNI_PTR * p,int xsize,const LCD_PIXELINDEX * pTrans) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 4606 MOV r6,r0
;;;329 LCD_PIXELINDEX Pixel;
;;;330 switch (GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR)) {
000006 4821 LDR r0,|L17.140|
000008 9f06 LDR r7,[sp,#0x18]
00000a 7b00 LDRB r0,[r0,#0xc] ; GUI_Context
00000c 4688 MOV r8,r1 ;328
00000e 4614 MOV r4,r2 ;328
000010 461d MOV r5,r3 ;328
000012 f0100003 ANDS r0,r0,#3
000016 d003 BEQ |L17.32|
000018 2802 CMP r0,#2
00001a d10f BNE |L17.60|
;;;331 case 0:
;;;332 if (pTrans) {
;;;333 for (; xsize > 0; xsize--, x++, p++) {
;;;334 Pixel = *p;
;;;335 LCD_L0_SetPixelIndex(x, y, *(pTrans + Pixel));
;;;336 }
;;;337 } else {
;;;338 for (; xsize > 0; xsize--, x++, p++) {
;;;339 LCD_L0_SetPixelIndex(x, y, *p);
;;;340 }
;;;341 }
;;;342 break;
;;;343 case LCD_DRAWMODE_TRANS:
;;;344 if (pTrans) {
00001c b397 CBZ r7,|L17.132|
00001e e025 B |L17.108|
|L17.32|
000020 b1b7 CBZ r7,|L17.80|
000022 e009 B |L17.56|
|L17.36|
000024 7820 LDRB r0,[r4,#0] ;334
000026 4641 MOV r1,r8 ;335
000028 f8372010 LDRH r2,[r7,r0,LSL #1] ;335
00002c 4630 MOV r0,r6 ;335
00002e f7fffffe BL LCD_L0_SetPixelIndex
000032 1e6d SUBS r5,r5,#1 ;333
000034 1c76 ADDS r6,r6,#1 ;333
000036 1c64 ADDS r4,r4,#1 ;333
|L17.56|
000038 2d00 CMP r5,#0 ;333
00003a dcf3 BGT |L17.36|
|L17.60|
;;;345 for (; xsize > 0; xsize--, x++, p++) {
;;;346 Pixel = *p;
;;;347 if (Pixel) {
;;;348 LCD_L0_SetPixelIndex(x, y, *(pTrans + Pixel));
;;;349 }
;;;350 }
;;;351 } else {
;;;352 for (; xsize > 0; xsize--, x++, p++) {
;;;353 Pixel = *p;
;;;354 if (Pixel) {
;;;355 LCD_L0_SetPixelIndex(x, y, Pixel);
;;;356 }
;;;357 }
;;;358 }
;;;359 break;
;;;360 }
;;;361 }
00003c e8bd81f0 POP {r4-r8,pc}
|L17.64|
000040 7822 LDRB r2,[r4,#0] ;339
000042 4641 MOV r1,r8 ;339
000044 4630 MOV r0,r6 ;339
000046 f7fffffe BL LCD_L0_SetPixelIndex
00004a 1e6d SUBS r5,r5,#1 ;338
00004c 1c76 ADDS r6,r6,#1 ;338
00004e 1c64 ADDS r4,r4,#1 ;338
|L17.80|
000050 2d00 CMP r5,#0 ;338
000052 dcf5 BGT |L17.64|
000054 e7f2 B |L17.60|
|L17.86|
000056 7820 LDRB r0,[r4,#0] ;346
000058 b128 CBZ r0,|L17.102|
00005a f8372010 LDRH r2,[r7,r0,LSL #1] ;348
00005e 4641 MOV r1,r8 ;348
000060 4630 MOV r0,r6 ;348
000062 f7fffffe BL LCD_L0_SetPixelIndex
|L17.102|
000066 1e6d SUBS r5,r5,#1 ;345
000068 1c76 ADDS r6,r6,#1 ;345
00006a 1c64 ADDS r4,r4,#1 ;345
|L17.108|
00006c 2d00 CMP r5,#0 ;345
00006e dcf2 BGT |L17.86|
000070 e7e4 B |L17.60|
|L17.114|
000072 7822 LDRB r2,[r4,#0] ;353
000074 b11a CBZ r2,|L17.126|
000076 4641 MOV r1,r8 ;355
000078 4630 MOV r0,r6 ;355
00007a f7fffffe BL LCD_L0_SetPixelIndex
|L17.126|
00007e 1e6d SUBS r5,r5,#1 ;352
000080 1c76 ADDS r6,r6,#1 ;352
000082 1c64 ADDS r4,r4,#1 ;352
|L17.132|
000084 2d00 CMP r5,#0 ;352
000086 dcf4 BGT |L17.114|
000088 e7d8 B |L17.60|
;;;362 #endif
ENDP
00008a 0000 DCW 0x0000
|L17.140|
DCD GUI_Context
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -