📄 lcd_app.txt
字号:
000884 e1500001 CMP r0,r1
000888 2a00001e BCS |L1.2312|
;;;443 {
;;;444 temp = *str;
00088c e58d0000 STR r0,[sp,#0]
;;;445 if((MAX_X - tempX)<12)
000890 e2640054 RSB r0,r4,#0x54
000894 e350000c CMP r0,#0xc
000898 aa000005 BGE |L1.2228|
;;;446 {
;;;447 tempX = 0;
;;;448 if((MAX_Y - tempY)<24)return 1;
00089c e2650030 RSB r0,r5,#0x30
0008a0 e3500018 CMP r0,#0x18
0008a4 e3a04000 MOV r4,#0 ;447
0008a8 ba00000b BLT |L1.2268|
;;;449 else tempY += 12;
0008ac e285000c ADD r0,r5,#0xc
0008b0 e3c05801 BIC r5,r0,#0x10000
|L1.2228|
;;;450 }
;;;451 if(Unicode_to_GBK((uint8 *)&temp))return 1;
0008b4 e28d0000 ADD r0,sp,#0
0008b8 ebfffffe BL Unicode_to_GBK
0008bc e3500000 CMP r0,#0
;;;452 Dis_GBK12(tempX,tempY,(uint8 *)&temp);
0008c0 028d2000 ADDEQ r2,sp,#0
;;;453 str ++;
;;;454 tempX += 12;
0008c4 0a000008 BEQ |L1.2284|
0008c8 ea000003 B |L1.2268|
|L1.2252|
0008cc e2650030 RSB r0,r5,#0x30 ;434
0008d0 e3500018 CMP r0,#0x18 ;434
0008d4 e3a04000 MOV r4,#0 ;433
0008d8 aa00000e BGE |L1.2328|
|L1.2268|
;;;455 }
;;;456 else
;;;457 {
;;;458 if((MAX_X - tempX)<12)
;;;459 {
;;;460 tempX = 0;
;;;461 if((MAX_Y - tempY)<24)return 1;
0008dc e3a00001 MOV r0,#1
|L1.2272|
0008e0 e8bd40f8 POP {r3-r7,lr}
;;;462 else tempY += 12;
;;;463 }
;;;464 Dis_GBK12(tempX,tempY,"■");
;;;465 str ++;
;;;466 tempX += 12;
;;;467 }
;;;468 }
;;;469 return 0;
;;;470 }
0008e4 e12fff1e BX lr
|L1.2280|
0008e8 e28f2f79 ADR r2,|L1.2772|
|L1.2284|
0008ec e1a01005 MOV r1,r5 ;452
0008f0 e1a00004 MOV r0,r4 ;452
0008f4 ebfffffe BL Dis_GBK12
0008f8 e2866002 ADD r6,r6,#2 ;453
0008fc e284000c ADD r0,r4,#0xc ;454
|L1.2304|
000900 e3c04801 BIC r4,r0,#0x10000 ;454
000904 ea000006 B |L1.2340|
|L1.2312|
000908 e2640054 RSB r0,r4,#0x54 ;458
00090c e350000c CMP r0,#0xc ;458
000910 aafffff4 BGE |L1.2280|
000914 eaffffec B |L1.2252|
|L1.2328|
000918 e285000c ADD r0,r5,#0xc ;462
00091c e3c05801 BIC r5,r0,#0x10000 ;462
000920 eafffff0 B |L1.2280|
|L1.2340|
000924 e1d600b0 LDRH r0,[r6,#0] ;386
000928 e3500000 CMP r0,#0 ;386
00092c 1affffa0 BNE |L1.1972|
000930 eaffffea B |L1.2272|
;;;471 uint8 LCD_print_unicode16(uint16 x,uint16 y,uint16 *str)
ENDP
LCD_print_unicode16 PROC
;;;472 {
000934 e92d40f8 PUSH {r3-r7,lr}
000938 e1a06002 MOV r6,r2
;;;473 uint16 tempX = x,tempY = y;
00093c e1a04000 MOV r4,r0
000940 e1a05001 MOV r5,r1
;;;474 uint16 temp;
;;;475 while(*str)
000944 ea00005b B |L1.2744|
|L1.2376|
;;;476 { if(*str == '\n')
000948 e350000a CMP r0,#0xa
00094c 1a00000f BNE |L1.2448|
;;;477 {
;;;478 if((MAX_X - tempX)<8)
000950 e2640054 RSB r0,r4,#0x54
000954 e3500008 CMP r0,#8
000958 aa000007 BGE |L1.2428|
;;;479 {
;;;480 tempX = 0;
;;;481 if((MAX_Y - tempY)<32)return 1;
00095c e2650030 RSB r0,r5,#0x30
000960 e3500020 CMP r0,#0x20
000964 e3a04000 MOV r4,#0 ;480
000968 ba000040 BLT |L1.2672|
|L1.2412|
;;;482 else tempY += 16;
00096c e2850010 ADD r0,r5,#0x10
000970 e3c05801 BIC r5,r0,#0x10000
;;;483 }
;;;484 else if((MAX_Y - tempY)<32)return 1;
;;;485 else
;;;486 {
;;;487 tempX = 0;
;;;488 tempY += 16;
;;;489 }
;;;490 str ++;
000974 e2866002 ADD r6,r6,#2
000978 ea00004e B |L1.2744|
|L1.2428|
00097c e2650030 RSB r0,r5,#0x30 ;484
000980 e3500020 CMP r0,#0x20 ;484
000984 a3a04000 MOVGE r4,#0 ;487
000988 aafffff7 BGE |L1.2412|
00098c ea000037 B |L1.2672|
|L1.2448|
;;;491 }
;;;492 else if(*str<0x20)
000990 e3500020 CMP r0,#0x20
000994 2a00000a BCS |L1.2500|
;;;493 {
;;;494 if((MAX_X - tempX)<8)
000998 e2640054 RSB r0,r4,#0x54
00099c e3500008 CMP r0,#8
0009a0 aa000005 BGE |L1.2492|
;;;495 {
;;;496 tempX = 0;
;;;497 if((MAX_Y - tempY)<32)return 1;
0009a4 e2650030 RSB r0,r5,#0x30
0009a8 e3500020 CMP r0,#0x20
0009ac e3a04000 MOV r4,#0 ;496
0009b0 ba00002e BLT |L1.2672|
;;;498 else tempY += 16;
0009b4 e2850010 ADD r0,r5,#0x10
0009b8 e3c05801 BIC r5,r0,#0x10000
|L1.2492|
;;;499 }
;;;500 Dis_Ascii_16(tempX,tempY,0x20);
0009bc e3a02020 MOV r2,#0x20
;;;501 str ++;
;;;502 tempX += 8;
0009c0 ea00000b B |L1.2548|
|L1.2500|
;;;503 }
;;;504 else if(*str<0x80)
0009c4 e3500080 CMP r0,#0x80
0009c8 2a00000f BCS |L1.2572|
;;;505 {
;;;506 if((MAX_X - tempX)<8)
0009cc e2641054 RSB r1,r4,#0x54
0009d0 e3510008 CMP r1,#8
0009d4 aa000005 BGE |L1.2544|
;;;507 {
;;;508 tempX = 0;
;;;509 if((MAX_Y - tempY)<32)return 1;
0009d8 e2651030 RSB r1,r5,#0x30
0009dc e3510020 CMP r1,#0x20
0009e0 e3a04000 MOV r4,#0 ;508
0009e4 ba000021 BLT |L1.2672|
;;;510 else tempY += 16;
0009e8 e2851010 ADD r1,r5,#0x10
0009ec e3c15801 BIC r5,r1,#0x10000
|L1.2544|
;;;511 }
;;;512 Dis_Ascii_16(tempX,tempY,*str);
0009f0 e20020ff AND r2,r0,#0xff
|L1.2548|
0009f4 e1a01005 MOV r1,r5 ;500
0009f8 e1a00004 MOV r0,r4 ;500
0009fc ebfffffe BL Dis_Ascii_16
000a00 e2866002 ADD r6,r6,#2 ;501
000a04 e2840008 ADD r0,r4,#8 ;502
000a08 ea000021 B |L1.2708|
|L1.2572|
;;;513 str ++;
;;;514 tempX += 8;
;;;515 }
;;;516 else if(*str < 0x4e00)
000a0c e3500c4e CMP r0,#0x4e00
000a10 3a000021 BCC |L1.2716|
;;;517 {
;;;518 if((MAX_X - tempX)<16)
;;;519 {
;;;520 tempX = 0;
;;;521 if((MAX_Y - tempY)<32)return 1;
;;;522 else tempY += 16;
;;;523 }
;;;524 Dis_GBK16(tempX,tempY,"■");
;;;525 str ++;
;;;526 tempX += 16;
;;;527 }
;;;528 else if(*str < 0x9fa6)
000a14 e59f10b4 LDR r1,|L1.2768|
000a18 e1500001 CMP r0,r1
000a1c 2a00001e BCS |L1.2716|
;;;529 {
;;;530 temp = *str;
000a20 e58d0000 STR r0,[sp,#0]
;;;531 if((MAX_X - tempX)<16)
000a24 e2640054 RSB r0,r4,#0x54
000a28 e3500010 CMP r0,#0x10
000a2c aa000005 BGE |L1.2632|
;;;532 {
;;;533 tempX = 0;
;;;534 if((MAX_Y - tempY)<32)return 1;
000a30 e2650030 RSB r0,r5,#0x30
000a34 e3500020 CMP r0,#0x20
000a38 e3a04000 MOV r4,#0 ;533
000a3c ba00000b BLT |L1.2672|
;;;535 else tempY += 16;
000a40 e2850010 ADD r0,r5,#0x10
000a44 e3c05801 BIC r5,r0,#0x10000
|L1.2632|
;;;536 }
;;;537 if(Unicode_to_GBK((uint8 *)&temp))return 1;
000a48 e28d0000 ADD r0,sp,#0
000a4c ebfffffe BL Unicode_to_GBK
000a50 e3500000 CMP r0,#0
;;;538 Dis_GBK16(tempX,tempY,(uint8 *)&temp);
000a54 028d2000 ADDEQ r2,sp,#0
;;;539 str ++;
;;;540 tempX += 16;
000a58 0a000008 BEQ |L1.2688|
000a5c ea000003 B |L1.2672|
|L1.2656|
000a60 e2650030 RSB r0,r5,#0x30 ;521
000a64 e3500020 CMP r0,#0x20 ;521
000a68 e3a04000 MOV r4,#0 ;520
000a6c aa00000e BGE |L1.2732|
|L1.2672|
;;;541 }
;;;542 else
;;;543 {
;;;544 if((MAX_X - tempX)<16)
;;;545 {
;;;546 tempX = 0;
;;;547 if((MAX_Y - tempY)<32)return 1;
000a70 e3a00001 MOV r0,#1
|L1.2676|
000a74 e8bd40f8 POP {r3-r7,lr}
;;;548 else tempY += 16;
;;;549 }
;;;550 Dis_GBK16(tempX,tempY,"■");
;;;551 str ++;
;;;552 tempX += 16;
;;;553 }
;;;554 }
;;;555 return 0;
;;;556 }
000a78 e12fff1e BX lr
|L1.2684|
000a7c e28f2050 ADR r2,|L1.2772|
|L1.2688|
000a80 e1a01005 MOV r1,r5 ;538
000a84 e1a00004 MOV r0,r4 ;538
000a88 ebfffffe BL Dis_GBK16
000a8c e2866002 ADD r6,r6,#2 ;539
000a90 e2840010 ADD r0,r4,#0x10 ;540
|L1.2708|
000a94 e3c04801 BIC r4,r0,#0x10000 ;540
000a98 ea000006 B |L1.2744|
|L1.2716|
000a9c e2640054 RSB r0,r4,#0x54 ;544
000aa0 e3500010 CMP r0,#0x10 ;544
000aa4 aafffff4 BGE |L1.2684|
000aa8 eaffffec B |L1.2656|
|L1.2732|
000aac e2850010 ADD r0,r5,#0x10 ;548
000ab0 e3c05801 BIC r5,r0,#0x10000 ;548
000ab4 eafffff0 B |L1.2684|
|L1.2744|
000ab8 e1d600b0 LDRH r0,[r6,#0] ;475
000abc e3500000 CMP r0,#0 ;475
000ac0 1affffa0 BNE |L1.2376|
000ac4 eaffffea B |L1.2676|
|L1.2760|
000ac8 00000000 DCD ||.constdata||
|L1.2764|
000acc 000000c0 DCD ||.constdata||+0xc0
|L1.2768|
000ad0 00009fa6 DCD 0x00009fa6
|L1.2772|
000ad4 a1f60000 DCB "\241\366\0\0"
ENDP
AREA ||.constdata||, DATA, READONLY, ALIGN=0
ICON
000000 00fffefe DCB 0x00,0xff,0xfe,0xfe
000004 fcfcf8f8 DCB 0xfc,0xfc,0xf8,0xf8
000008 70702000 DCB 0x70,0x70,0x20,0x00
00000c 00070303 DCB 0x00,0x07,0x03,0x03
000010 01010000 DCB 0x01,0x01,0x00,0x00
000014 00000000 DCB 0x00,0x00,0x00,0x00
000018 0000fefe DCB 0x00,0x00,0xfe,0xfe
00001c fe0000fe DCB 0xfe,0x00,0x00,0xfe
000020 fefe0000 DCB 0xfe,0xfe,0x00,0x00
000024 00000707 DCB 0x00,0x00,0x07,0x07
000028 07000007 DCB 0x07,0x00,0x00,0x07
00002c 07070000 DCB 0x07,0x07,0x00,0x00
000030 08040281 DCB 0x08,0x04,0x02,0x81
000034 c1010101 DCB 0xc1,0x01,0x01,0x01
000038 81463800 DCB 0x81,0x46,0x38,0x00
00003c 00000103 DCB 0x00,0x00,0x01,0x03
000040 07010101 DCB 0x07,0x01,0x01,0x01
000044 00000000 DCB 0x00,0x00,0x00,0x00
000048 08040281 DCB 0x08,0x04,0x02,0x81
00004c c1097d01 DCB 0xc1,0x09,0x7d,0x01
000050 81463800 DCB 0x81,0x46,0x38,0x00
000054 00000103 DCB 0x00,0x00,0x01,0x03
000058 07010101 DCB 0x07,0x01,0x01,0x01
00005c 00000000 DCB 0x00,0x00,0x00,0x00
000060 060c0890 DCB 0x06,0x0c,0x08,0x90
000064 60900804 DCB 0x60,0x90,0x08,0x04
000068 04950e04 DCB 0x04,0x95,0x0e,0x04
00006c 06030100 DCB 0x06,0x03,0x01,0x00
000070 00000102 DCB 0x00,0x00,0x01,0x02
000074 020a0702 DCB 0x02,0x0a,0x07,0x02
000078 708c0202 DCB 0x70,0x8c,0x02,0x02
00007c 01392122 DCB 0x01,0x39,0x21,0x22
000080 228c7000 DCB 0x22,0x8c,0x70,0x00
000084 00010202 DCB 0x00,0x01,0x02,0x02
000088 04040402 DCB 0x04,0x04,0x04,0x02
00008c 02010000 DCB 0x02,0x01,0x00,0x00
000090 000000fe DCB 0x00,0x00,0x00,0xfe
000094 06060606 DCB 0x06,0x06,0x06,0x06
000098 0606fe00 DCB 0x06,0x06,0xfe,0x00
00009c 06070703 DCB 0x06,0x07,0x07,0x03
0000a0 00000006 DCB 0x00,0x00,0x00,0x06
0000a4 07070300 DCB 0x07,0x07,0x03,0x00
0000a8 00f090f0 DCB 0x00,0xf0,0x90,0xf0
0000ac 0804fe00 DCB 0x08,0x04,0xfe,0x00
0000b0 6408f000 DCB 0x64,0x08,0xf0,0x00
0000b4 00000000 DCB 0x00,0x00,0x00,0x00
0000b8 01020700 DCB 0x01,0x02,0x07,0x00
0000bc 02010000 DCB 0x02,0x01,0x00,0x00
ICON1
0000c0 f090f008 DCB 0xf0,0x90,0xf0,0x08
0000c4 04fe0000 DCB 0x04,0xfe,0x00,0x00
0000c8 00010207 DCB 0x00,0x01,0x02,0x07
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -