📄 guidev_16.txt
字号:
0000f2 4646 MOV r6,r8 ;483
0000f4 463d MOV r5,r7 ;483
0000f6 f0100003 ANDS r0,r0,#3 ;483
0000fa d002 BEQ |L4.258|
0000fc 2802 CMP r0,#2 ;483
0000fe d14f BNE |L4.416|
000100 e00d B |L4.286|
|L4.258|
000102 f8160b01 LDRB r0,[r6],#1 ;483
000106 9918 LDR r1,[sp,#0x60] ;483
000108 462a MOV r2,r5 ;483
00010a f8310010 LDRH r0,[r1,r0,LSL #1] ;483
00010e 8010 STRH r0,[r2,#0] ;483
000110 1cad ADDS r5,r5,#2 ;483
000112 f1a90001 SUB r0,r9,#1 ;483
000116 ea5f0900 MOVS r9,r0 ;483
00011a d1f2 BNE |L4.258|
00011c e040 B |L4.416|
|L4.286|
00011e 7830 LDRB r0,[r6,#0] ;483
000120 b150 CBZ r0,|L4.312|
000122 9918 LDR r1,[sp,#0x60] ;483
000124 f8310010 LDRH r0,[r1,r0,LSL #1] ;483
000128 8028 STRH r0,[r5,#0] ;483
00012a b12c CBZ r4,|L4.312|
00012c 68a0 LDR r0,[r4,#8] ;483
00012e e9dd1204 LDRD r1,r2,[sp,#0x10] ;483
000132 6803 LDR r3,[r0,#0] ;483
000134 4620 MOV r0,r4 ;483
000136 4798 BLX r3 ;483
|L4.312|
000138 9804 LDR r0,[sp,#0x10] ;483
00013a 1cad ADDS r5,r5,#2 ;483
00013c 1c40 ADDS r0,r0,#1 ;483
00013e 9004 STR r0,[sp,#0x10] ;483
000140 1c76 ADDS r6,r6,#1 ;483
000142 f1a90001 SUB r0,r9,#1 ;483
000146 ea5f0900 MOVS r9,r0 ;483
00014a d1e8 BNE |L4.286|
00014c e028 B |L4.416|
|L4.334|
00014e eb0b000a ADD r0,r11,r10 ;485
000152 9005 STR r0,[sp,#0x14] ;485
000154 4838 LDR r0,|L4.568|
000156 f8dd9024 LDR r9,[sp,#0x24] ;485
00015a 7b00 LDRB r0,[r0,#0xc] ;485 ; GUI_Context
00015c 4646 MOV r6,r8 ;485
00015e 463d MOV r5,r7 ;485
000160 f0100003 ANDS r0,r0,#3 ;485
000164 d002 BEQ |L4.364|
000166 2802 CMP r0,#2 ;485
000168 d11a BNE |L4.416|
00016a e005 B |L4.376|
|L4.364|
00016c 464a MOV r2,r9 ;485
00016e 4631 MOV r1,r6 ;485
000170 4628 MOV r0,r5 ;485
000172 f7fffffe BL __aeabi_memcpy
000176 e013 B |L4.416|
|L4.376|
000178 7830 LDRB r0,[r6,#0] ;485
00017a b138 CBZ r0,|L4.396|
00017c 8028 STRH r0,[r5,#0] ;485
00017e b12c CBZ r4,|L4.396|
000180 68a0 LDR r0,[r4,#8] ;485
000182 e9dd1204 LDRD r1,r2,[sp,#0x10] ;485
000186 6803 LDR r3,[r0,#0] ;485
000188 4620 MOV r0,r4 ;485
00018a 4798 BLX r3 ;485
|L4.396|
00018c 9804 LDR r0,[sp,#0x10] ;485
00018e 1cad ADDS r5,r5,#2 ;485
000190 1c40 ADDS r0,r0,#1 ;485
000192 9004 STR r0,[sp,#0x10] ;485
000194 1c76 ADDS r6,r6,#1 ;485
000196 f1a90001 SUB r0,r9,#1 ;485
00019a ea5f0900 MOVS r9,r0 ;485
00019e d1eb BNE |L4.376|
|L4.416|
0001a0 9806 LDR r0,[sp,#0x18] ;488
0001a2 9915 LDR r1,[sp,#0x54] ;487
0001a4 4407 ADD r7,r7,r0 ;488
0001a6 4488 ADD r8,r8,r1 ;487
0001a8 f10b0001 ADD r0,r11,#1 ;481
|L4.428|
0001ac 990a LDR r1,[sp,#0x28] ;481
0001ae 4683 MOV r11,r0 ;481
0001b0 4288 CMP r0,r1 ;481
0001b2 db92 BLT |L4.218|
0001b4 e78a B |L4.204|
0001b6 e7ff B |L4.440|
|L4.440|
0001b8 9818 LDR r0,[sp,#0x60] ;493
0001ba b908 CBNZ r0,|L4.448|
0001bc 481f LDR r0,|L4.572|
0001be 9018 STR r0,[sp,#0x60] ;494
|L4.448|
0001c0 2500 MOVS r5,#0 ;496
0001c2 e017 B |L4.500|
|L4.452|
0001c4 2e01 CMP r6,#1 ;497
0001c6 d019 BEQ |L4.508|
0001c8 2e02 CMP r6,#2 ;497
0001ca d026 BEQ |L4.538|
0001cc 2e04 CMP r6,#4 ;497
0001ce d10c BNE |L4.490|
0001d0 9a18 LDR r2,[sp,#0x60] ;505
0001d2 9909 LDR r1,[sp,#0x24] ;505
0001d4 e9cd2702 STRD r2,r7,[sp,#8] ;505
0001d8 e9cdb100 STRD r11,r1,[sp,#0] ;505
0001dc eb05020a ADD r2,r5,r10 ;505
0001e0 4643 MOV r3,r8 ;505
0001e2 4620 MOV r0,r4 ;505
0001e4 9907 LDR r1,[sp,#0x1c] ;505
0001e6 f7fffffe BL _DrawBitLine4BPP
|L4.490|
0001ea 9915 LDR r1,[sp,#0x54] ;508
0001ec 9806 LDR r0,[sp,#0x18] ;509
0001ee 4488 ADD r8,r8,r1 ;508
0001f0 4407 ADD r7,r7,r0 ;509
0001f2 1c6d ADDS r5,r5,#1 ;496
|L4.500|
0001f4 980a LDR r0,[sp,#0x28] ;496
0001f6 4285 CMP r5,r0 ;496
0001f8 dbe4 BLT |L4.452|
0001fa e767 B |L4.204|
|L4.508|
0001fc 9809 LDR r0,[sp,#0x24] ;499
0001fe 9918 LDR r1,[sp,#0x60] ;499
000200 e9cdb000 STRD r11,r0,[sp,#0] ;499
000204 e9cd9703 STRD r9,r7,[sp,#0xc] ;499
000208 9102 STR r1,[sp,#8] ;499
00020a eb05020a ADD r2,r5,r10 ;499
00020e 4643 MOV r3,r8 ;499
000210 4620 MOV r0,r4 ;499
000212 9907 LDR r1,[sp,#0x1c] ;499
000214 f7fffffe BL _DrawBitLine1BPP
000218 e7e7 B |L4.490|
|L4.538|
00021a 9a18 LDR r2,[sp,#0x60] ;502
00021c 9909 LDR r1,[sp,#0x24] ;502
00021e e9cd2702 STRD r2,r7,[sp,#8] ;502
000222 e9cdb100 STRD r11,r1,[sp,#0] ;502
000226 eb05020a ADD r2,r5,r10 ;502
00022a 4643 MOV r3,r8 ;502
00022c 4620 MOV r0,r4 ;502
00022e 9907 LDR r1,[sp,#0x1c] ;502
000230 f7fffffe BL _DrawBitLine2BPP
000234 e7d9 B |L4.490|
;;;512
ENDP
000236 0000 DCW 0x0000
|L4.568|
DCD GUI_Context
|L4.572|
DCD ||.constdata||
AREA ||i._DrawHLine||, CODE, READONLY, ALIGN=1
_DrawHLine PROC
;;;557 */
;;;558 static void _DrawHLine(int x0, int y, int x1) {
000000 460b MOV r3,r1
;;;559 _FillRect(x0, y, x1, y);
000002 f7ffbffe B.W _FillRect
;;;560 }
;;;561
ENDP
AREA ||i._DrawVLine||, CODE, READONLY, ALIGN=2
_DrawVLine PROC
;;;565 */
;;;566 static void _DrawVLine(int x , int y0, int y1) {
000000 e92d4ff7 PUSH {r0-r2,r4-r11,lr}
;;;567 GUI_MEMDEV* pDev = GUI_MEMDEV_H2P(GUI_Context.hDevData);
000004 f8df809c LDR r8,|L6.164|
000008 460d MOV r5,r1 ;566
00000a 4692 MOV r10,r2 ;566
00000c f9b8004c LDRSH r0,[r8,#0x4c] ; GUI_Context
000010 f7fffffe BL GUI_ALLOC_h2p
;;;568 GUI_USAGE_h hUsage = pDev->hUsage;
000014 f9b09018 LDRSH r9,[r0,#0x18]
000018 4606 MOV r6,r0 ;567
;;;569 GUI_USAGE* pUsage = hUsage ? GUI_USAGE_H2P(hUsage) : NULL;
00001a ea5f0009 MOVS r0,r9
00001e d001 BEQ |L6.36|
000020 f7fffffe BL GUI_ALLOC_h2p
|L6.36|
000024 4683 MOV r11,r0
;;;570 PIXELINDEX* pData = _XY2PTR(x, y0);
000026 4629 MOV r1,r5
000028 9800 LDR r0,[sp,#0]
00002a f7fffffe BL _XY2PTR
00002e 4604 MOV r4,r0
;;;571 unsigned BytesPerLine = pDev->BytesPerLine;
;;;572
;;;573 if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
000030 f898000c LDRB r0,[r8,#0xc] ; GUI_Context
000034 68f7 LDR r7,[r6,#0xc]
000036 07c0 LSLS r0,r0,#31
000038 d016 BEQ |L6.104|
;;;574 PIXELINDEX IndexMask;
;;;575 IndexMask = pDev->pfGetIndexMask();
00003a 6a70 LDR r0,[r6,#0x24]
00003c 4780 BLX r0
00003e b287 UXTH r7,r0
|L6.64|
;;;576 do {
;;;577 if (hUsage) {
000040 f1b90f00 CMP r9,#0
000044 d006 BEQ |L6.84|
;;;578 GUI_USAGE_AddPixel(pUsage, x, y0);
000046 f8db0008 LDR r0,[r11,#8]
00004a 462a MOV r2,r5
00004c 6803 LDR r3,[r0,#0]
00004e 4658 MOV r0,r11
000050 9900 LDR r1,[sp,#0]
000052 4798 BLX r3
|L6.84|
;;;579 }
;;;580 *pData = *pData ^ IndexMask;
000054 8820 LDRH r0,[r4,#0]
;;;581 pData = (PIXELINDEX*)((U8*)pData + pDev->BytesPerLine); /* Same as "pData += pDev->BytesPerLine >> 1;", Just more efficient */
;;;582 } while (++y0 <= y1);
000056 1c6d ADDS r5,r5,#1
000058 4078 EORS r0,r0,r7 ;580
00005a 8020 STRH r0,[r4,#0] ;580
00005c 68f0 LDR r0,[r6,#0xc]
00005e 4555 CMP r5,r10
000060 4404 ADD r4,r4,r0 ;581
000062 dded BLE |L6.64|
|L6.100|
;;;583 } else {
;;;584 if (hUsage) {
;;;585 do {
;;;586 GUI_USAGE_AddPixel(pUsage, x, y0);
;;;587 *pData = LCD_COLORINDEX;
;;;588 pData = (PIXELINDEX*)((U8*)pData + BytesPerLine); /* Same as "pData += pDev->BytesPerLine >> 1;", Just more efficient */
;;;589 } while (++y0 <= y1);
;;;590 } else {
;;;591 unsigned NumPixels;
;;;592 NumPixels = y1 - y0 + 1;
;;;593 do {
;;;594 *pData = LCD_COLORINDEX;
;;;595 pData = (PIXELINDEX*)((U8*)pData + BytesPerLine); /* Same as "pData += pDev->BytesPerLine >> 1;", Just more efficient */
;;;596 } while (--NumPixels);
;;;597 }
;;;598 }
;;;599 }
000064 e8bd8ffe POP {r1-r11,pc}
|L6.104|
000068 f1b90f00 CMP r9,#0 ;584
00006c d00f BEQ |L6.142|
00006e bf00 NOP ;586
|L6.112|
000070 f8db0008 LDR r0,[r11,#8] ;586
000074 462a MOV r2,r5 ;586
000076 6803 LDR r3,[r0,#0] ;586
000078 4658 MOV r0,r11 ;586
00007a 9900 LDR r1,[sp,#0] ;586
00007c 4798 BLX r3 ;586
00007e f8b80002 LDRH r0,[r8,#2] ;587 ; GUI_Context
000082 8020 STRH r0,[r4,#0] ;587
000084 1c6d ADDS r5,r5,#1 ;589
000086 443c ADD r4,r4,r7 ;588
000088 4555 CMP r5,r10 ;589
00008a ddf1 BLE |L6.112|
00008c e7ea B |L6.100|
|L6.142|
00008e ebaa0005 SUB r0,r10,r5 ;592
000092 1c40 ADDS r0,r0,#1 ;592
|L6.148|
000094 4622 MOV r2,r4 ;594
000096 f8b81002 LDRH r1,[r8,#2] ;594 ; GUI_Context
00009a 443c ADD r4,r4,r7 ;595
00009c 1e40 SUBS r0,r0,#1 ;596
00009e 8011 STRH r1,[r2,#0] ;594
0000a0 d1f8 BNE |L6.148|
0000a2 e7df B |L6.100|
;;;600
ENDP
|L6.164|
DCD GUI_Context
AREA ||i._FillRect||, CODE, READONLY, ALIGN=2
_FillRect PROC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -