📄 lcd.txt
字号:
000112 f0220001 BIC r0,r2,#1 ;209
000116 eb040462 ADD r4,r4,r2,ASR #1 ;209
00011a 4405 ADD r5,r5,r0 ;209
00011c f0020201 AND r2,r2,#1 ;209
000120 e7da B |L2.216|
|L2.290|
000122 4414 ADD r4,r4,r2 ;212
000124 e7d6 B |L2.212|
|L2.294|
000126 9816 LDR r0,[sp,#0x58] ;227
000128 9705 STR r7,[sp,#0x14] ;228
00012a f1c00008 RSB r0,r0,#8 ;227
00012e 9003 STR r0,[sp,#0xc] ;228
000130 2000 MOVS r0,#0 ;228
000132 9004 STR r0,[sp,#0x10] ;228
000134 e04a B |L2.460|
|L2.310|
000136 9915 LDR r1,[sp,#0x54] ;229
000138 9805 LDR r0,[sp,#0x14] ;229
00013a 4408 ADD r0,r0,r1 ;229
00013c 9006 STR r0,[sp,#0x18] ;229
00013e 1e40 SUBS r0,r0,#1 ;229
000140 4925 LDR r1,|L2.472|
000142 9002 STR r0,[sp,#8] ;231
000144 f9b12006 LDRSH r2,[r1,#6] ;231 ; GUI_Context
000148 4282 CMP r2,r0 ;231
00014a dc37 BGT |L2.444|
00014c 4608 MOV r0,r1 ;231
00014e f9b0000a LDRSH r0,[r0,#0xa] ;231 ; GUI_Context
000152 9905 LDR r1,[sp,#0x14] ;231
000154 4288 CMP r0,r1 ;231
000156 db31 BLT |L2.444|
000158 2700 MOVS r7,#0 ;232
00015a 46a2 MOV r10,r4 ;234
00015c 46a8 MOV r8,r5 ;235
00015e 46b9 MOV r9,r7 ;235
000160 e02a B |L2.440|
|L2.354|
000162 b917 CBNZ r7,|L2.362|
000164 f81a6b01 LDRB r6,[r10],#1 ;238
000168 2708 MOVS r7,#8 ;239
|L2.362|
00016a 9903 LDR r1,[sp,#0xc] ;241
00016c fa36f001 LSRS r0,r6,r1 ;241
000170 9916 LDR r1,[sp,#0x58] ;242
000172 fa06f601 LSL r6,r6,r1 ;242
000176 b2f6 UXTB r6,r6 ;242
000178 eba70701 SUB r7,r7,r1 ;243
00017c d103 BNE |L2.390|
00017e 4916 LDR r1,|L2.472|
000180 7b09 LDRB r1,[r1,#0xc] ;244 ; GUI_Context
000182 0789 LSLS r1,r1,#30 ;244
000184 d414 BMI |L2.432|
|L2.390|
000186 4914 LDR r1,|L2.472|
000188 9a19 LDR r2,[sp,#0x64] ;245
00018a 8849 LDRH r1,[r1,#2] ;245 ; GUI_Context
00018c 9101 STR r1,[sp,#4] ;246
00018e b10a CBZ r2,|L2.404|
000190 f8320010 LDRH r0,[r2,r0,LSL #1] ;247
|L2.404|
000194 4910 LDR r1,|L2.472|
000196 8048 STRH r0,[r1,#2] ;249
000198 9914 LDR r1,[sp,#0x50] ;251
00019a 4640 MOV r0,r8 ;251
00019c eb080201 ADD r2,r8,r1 ;251
0001a0 1e52 SUBS r2,r2,#1 ;251
0001a2 9b02 LDR r3,[sp,#8] ;251
0001a4 9905 LDR r1,[sp,#0x14] ;251
0001a6 f7fffffe BL LCD_FillRect
0001aa 490b LDR r1,|L2.472|
0001ac 9801 LDR r0,[sp,#4] ;252
0001ae 8048 STRH r0,[r1,#2] ;252
|L2.432|
0001b0 9914 LDR r1,[sp,#0x50] ;235
0001b2 f1090901 ADD r9,r9,#1 ;235
0001b6 4488 ADD r8,r8,r1 ;235
|L2.440|
0001b8 45d9 CMP r9,r11 ;235
0001ba dbd2 BLT |L2.354|
|L2.444|
0001bc 9804 LDR r0,[sp,#0x10] ;228
0001be 1c40 ADDS r0,r0,#1 ;228
0001c0 9004 STR r0,[sp,#0x10] ;228
0001c2 9806 LDR r0,[sp,#0x18] ;228
0001c4 9005 STR r0,[sp,#0x14] ;228
0001c6 9817 LDR r0,[sp,#0x5c] ;228
0001c8 4404 ADD r4,r4,r0 ;228
0001ca 9804 LDR r0,[sp,#0x10] ;228
|L2.460|
0001cc 990a LDR r1,[sp,#0x28] ;228
0001ce 4288 CMP r0,r1 ;228
0001d0 dbb1 BLT |L2.310|
0001d2 e793 B |L2.252|
;;;259
ENDP
|L2.468|
DCD GUI_pLCD_APIList
|L2.472|
DCD GUI_Context
AREA ||i.LCD_DrawHLine||, CODE, READONLY, ALIGN=2
LCD_DrawHLine PROC
;;;119 */
;;;120 void LCD_DrawHLine(int x0, int y, int x1) {
000000 b430 PUSH {r4,r5}
;;;121 /* Perform clipping and check if there is something to do */
;;;122 RETURN_IF_Y_OUT();
000002 4c0d LDR r4,|L3.56|
000004 f9b43006 LDRSH r3,[r4,#6] ; GUI_Context
000008 428b CMP r3,r1
00000a dc13 BGT |L3.52|
00000c f9b4300a LDRSH r3,[r4,#0xa] ; GUI_Context
000010 428b CMP r3,r1
000012 db0f BLT |L3.52|
;;;123 CLIP_X();
000014 f9b43004 LDRSH r3,[r4,#4] ; GUI_Context
000018 4283 CMP r3,r0
00001a dd00 BLE |L3.30|
00001c 4618 MOV r0,r3
|L3.30|
00001e f9b43008 LDRSH r3,[r4,#8] ; GUI_Context
000022 4293 CMP r3,r2
000024 da00 BGE |L3.40|
000026 461a MOV r2,r3
|L3.40|
;;;124 if (x1<x0)
000028 4282 CMP r2,r0
00002a db03 BLT |L3.52|
;;;125 return;
;;;126 /* Call driver to draw */
;;;127 LCDDEV_L0_DrawHLine(x0, y, x1);
00002c 6ca3 LDR r3,[r4,#0x48] ; GUI_Context
00002e 691b LDR r3,[r3,#0x10]
000030 bc30 POP {r4,r5}
000032 4718 BX r3
|L3.52|
;;;128 }
000034 bc30 POP {r4,r5}
000036 4770 BX lr
;;;129
ENDP
|L3.56|
DCD GUI_Context
AREA ||i.LCD_DrawPixel||, CODE, READONLY, ALIGN=2
LCD_DrawPixel PROC
;;;105 */
;;;106 void LCD_DrawPixel(int x, int y) {
000000 b430 PUSH {r4,r5}
;;;107 RETURN_IF_Y_OUT();
000002 4a0f LDR r2,|L4.64|
000004 f9b23006 LDRSH r3,[r2,#6] ; GUI_Context
000008 428b CMP r3,r1
00000a dc17 BGT |L4.60|
00000c f9b2300a LDRSH r3,[r2,#0xa] ; GUI_Context
000010 428b CMP r3,r1
000012 db13 BLT |L4.60|
;;;108 RETURN_IF_X_OUT();
000014 f9b23004 LDRSH r3,[r2,#4] ; GUI_Context
000018 4283 CMP r3,r0
00001a dc0f BGT |L4.60|
00001c f9b23008 LDRSH r3,[r2,#8] ; GUI_Context
000020 4283 CMP r3,r0
000022 db0b BLT |L4.60|
;;;109 if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
000024 7b14 LDRB r4,[r2,#0xc] ; GUI_Context
000026 4613 MOV r3,r2 ;107
;;;110 LCDDEV_L0_XorPixel(x, y);
000028 6c9b LDR r3,[r3,#0x48]
00002a 07e4 LSLS r4,r4,#31 ;109
00002c d002 BEQ |L4.52|
00002e 6a9a LDR r2,[r3,#0x28]
000030 bc30 POP {r4,r5}
000032 4710 BX r2
|L4.52|
;;;111 } else {
;;;112 LCDDEV_L0_SetPixelIndex(x, y, LCD_COLORINDEX);
000034 8852 LDRH r2,[r2,#2] ; GUI_Context
000036 6a5b LDR r3,[r3,#0x24]
000038 bc30 POP {r4,r5}
00003a 4718 BX r3
|L4.60|
;;;113 }
;;;114 }
00003c bc30 POP {r4,r5}
00003e 4770 BX lr
;;;115
ENDP
|L4.64|
DCD GUI_Context
AREA ||i.LCD_FillRect||, CODE, READONLY, ALIGN=2
LCD_FillRect PROC
;;;133 */
;;;134 void LCD_FillRect(int x0, int y0, int x1, int y1) {
000000 b430 PUSH {r4,r5}
;;;135 /* Perform clipping and check if there is something to do */
;;;136 CLIP_X();
000002 4d10 LDR r5,|L5.68|
000004 f9b54004 LDRSH r4,[r5,#4] ; GUI_Context
000008 4284 CMP r4,r0
00000a dd00 BLE |L5.14|
00000c 4620 MOV r0,r4
|L5.14|
00000e f9b54008 LDRSH r4,[r5,#8] ; GUI_Context
000012 4294 CMP r4,r2
000014 da00 BGE |L5.24|
000016 4622 MOV r2,r4
|L5.24|
;;;137 if (x1<x0)
000018 4282 CMP r2,r0
00001a db10 BLT |L5.62|
;;;138 return;
;;;139 CLIP_Y();
00001c f9b54006 LDRSH r4,[r5,#6] ; GUI_Context
000020 428c CMP r4,r1
000022 dd00 BLE |L5.38|
000024 4621 MOV r1,r4
|L5.38|
000026 f9b5400a LDRSH r4,[r5,#0xa] ; GUI_Context
00002a 429c CMP r4,r3
00002c da00 BGE |L5.48|
00002e 4623 MOV r3,r4
|L5.48|
;;;140 if (y1<y0)
000030 428b CMP r3,r1
000032 db04 BLT |L5.62|
;;;141 return;
;;;142 /* Call driver to draw */
;;;143 LCDDEV_L0_FillRect(x0,y0,x1,y1);
000034 6cac LDR r4,[r5,#0x48] ; GUI_Context
000036 69a4 LDR r4,[r4,#0x18]
000038 46a4 MOV r12,r4
00003a bc30 POP {r4,r5}
00003c 4760 BX r12
|L5.62|
;;;144 }
00003e bc30 POP {r4,r5}
000040 4770 BX lr
;;;145
ENDP
000042 0000 DCW 0x0000
|L5.68|
DCD GUI_Context
AREA ||i.LCD_Index2Color||, CODE, READONLY, ALIGN=2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -