📄 gui__wrap.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\gui__wrap.o --depend=.\Obj\gui__wrap.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Core\GUI__Wrap.c]
THUMB
AREA ||i.GUI__WrapGetNumBytesToNextLine||, CODE, READONLY, ALIGN=1
GUI__WrapGetNumBytesToNextLine PROC
;;;152 */
;;;153 int GUI__WrapGetNumBytesToNextLine(const char GUI_UNI_PTR * pText, int xSize, GUI_WRAPMODE WrapMode) {
000000 b510 PUSH {r4,lr}
000002 4604 MOV r4,r0
;;;154 int NumChars, NumBytes;
;;;155 NumChars = GUI__WrapGetNumCharsToNextLine(pText, xSize, WrapMode);
000004 f7fffffe BL GUI__WrapGetNumCharsToNextLine
;;;156 NumBytes = GUI_UC__NumChars2NumBytes(pText, NumChars);
000008 4601 MOV r1,r0
00000a 4620 MOV r0,r4
00000c e8bd4010 POP {r4,lr}
000010 f7ffbffe B.W GUI_UC__NumChars2NumBytes
;;;157 return NumBytes;
;;;158 }
;;;159
ENDP
AREA ||i.GUI__WrapGetNumCharsDisp||, CODE, READONLY, ALIGN=1
GUI__WrapGetNumCharsDisp PROC
;;;110 */
;;;111 int GUI__WrapGetNumCharsDisp(const char GUI_UNI_PTR * pText, int xSize, GUI_WRAPMODE WrapMode) {
000000 e92d43f8 PUSH {r3-r9,lr}
000004 4688 MOV r8,r1
;;;112 int r;
;;;113 switch (WrapMode) {
000006 2a01 CMP r2,#1
000008 d005 BEQ |L2.22|
00000a 2a02 CMP r2,#2
00000c d131 BNE |L2.114|
00000e 2400 MOVS r4,#0
000010 4625 MOV r5,r4
000012 9000 STR r0,[sp,#0]
000014 e027 B |L2.102|
|L2.22|
000016 2600 MOVS r6,#0
000018 4634 MOV r4,r6
00001a 4635 MOV r5,r6
00001c 4637 MOV r7,r6
00001e 9000 STR r0,[sp,#0]
|L2.32|
000020 4668 MOV r0,sp
000022 f7fffffe BL GUI_UC__GetCharCodeInc
000026 b108 CBZ r0,|L2.44|
000028 280a CMP r0,#0xa
00002a d101 BNE |L2.48|
|L2.44|
00002c 4625 MOV r5,r4
00002e e00d B |L2.76|
|L2.48|
000030 2820 CMP r0,#0x20
000032 d102 BNE |L2.58|
000034 2f20 CMP r7,#0x20
000036 d000 BEQ |L2.58|
000038 4625 MOV r5,r4
|L2.58|
00003a 4607 MOV r7,r0
00003c f7fffffe BL GUI_GetCharDistX
000040 4406 ADD r6,r6,r0
000042 4546 CMP r6,r8
000044 dd00 BLE |L2.72|
000046 b90c CBNZ r4,|L2.76|
|L2.72|
000048 1c64 ADDS r4,r4,#1
00004a e7e9 B |L2.32|
|L2.76|
00004c b9b5 CBNZ r5,|L2.124|
00004e 4625 MOV r5,r4
000050 e014 B |L2.124|
|L2.82|
000052 4630 MOV r0,r6
000054 f7fffffe BL GUI_GetCharDistX
000058 4404 ADD r4,r4,r0
00005a b10d CBZ r5,|L2.96|
00005c 4544 CMP r4,r8
00005e dc0d BGT |L2.124|
|L2.96|
000060 2e0a CMP r6,#0xa
000062 d00b BEQ |L2.124|
000064 1c6d ADDS r5,r5,#1
|L2.102|
000066 4668 MOV r0,sp
000068 f7fffffe BL GUI_UC__GetCharCodeInc
00006c 0006 MOVS r6,r0
00006e d1f0 BNE |L2.82|
000070 e004 B |L2.124|
|L2.114|
000072 f64771ff MOV r1,#0x7fff
000076 f7fffffe BL GUI__GetLineNumChars
;;;114 case GUI_WRAPMODE_WORD:
;;;115 r = _GetWordWrap(pText, xSize);
;;;116 break;
;;;117 case GUI_WRAPMODE_CHAR:
;;;118 r = _GetCharWrap(pText, xSize);
;;;119 break;
;;;120 default:
;;;121 r = _GetNoWrap(pText);
00007a 4605 MOV r5,r0
|L2.124|
;;;122 }
;;;123 return r;
00007c 4628 MOV r0,r5
;;;124 }
00007e e8bd83f8 POP {r3-r9,pc}
;;;125
ENDP
AREA ||i.GUI__WrapGetNumCharsToNextLine||, CODE, READONLY, ALIGN=1
GUI__WrapGetNumCharsToNextLine PROC
;;;129 */
;;;130 int GUI__WrapGetNumCharsToNextLine(const char GUI_UNI_PTR * pText, int xSize, GUI_WRAPMODE WrapMode) {
000000 b537 PUSH {r0-r2,r4,r5,lr}
000002 4615 MOV r5,r2
;;;131 int NumChars;
;;;132 U16 Char;
;;;133 NumChars = GUI__WrapGetNumCharsDisp(pText, xSize, WrapMode);
000004 9800 LDR r0,[sp,#0]
000006 f7fffffe BL GUI__WrapGetNumCharsDisp
00000a 4604 MOV r4,r0
;;;134 pText += GUI_UC__NumChars2NumBytes(pText, NumChars);
00000c 4601 MOV r1,r0
00000e 9800 LDR r0,[sp,#0]
000010 f7fffffe BL GUI_UC__NumChars2NumBytes
000014 9900 LDR r1,[sp,#0]
000016 4408 ADD r0,r0,r1
;;;135 Char = GUI_UC__GetCharCodeInc(&pText);
000018 9000 STR r0,[sp,#0]
00001a 4668 MOV r0,sp
00001c f7fffffe BL GUI_UC__GetCharCodeInc
;;;136 if (Char == '\n') {
000020 280a CMP r0,#0xa
000022 d101 BNE |L3.40|
;;;137 NumChars++;
000024 1c64 ADDS r4,r4,#1
000026 e008 B |L3.58|
|L3.40|
;;;138 } else {
;;;139 if (WrapMode == GUI_WRAPMODE_WORD) {
000028 2d01 CMP r5,#1
00002a d106 BNE |L3.58|
00002c e003 B |L3.54|
|L3.46|
;;;140 while (Char == ' ') {
;;;141 NumChars++;
00002e 1c64 ADDS r4,r4,#1
;;;142 Char = GUI_UC__GetCharCodeInc(&pText);
000030 4668 MOV r0,sp
000032 f7fffffe BL GUI_UC__GetCharCodeInc
|L3.54|
000036 2820 CMP r0,#0x20 ;140
000038 d0f9 BEQ |L3.46|
|L3.58|
;;;143 }
;;;144 }
;;;145 }
;;;146 return NumChars;
00003a 4620 MOV r0,r4
;;;147 }
00003c bd3e POP {r1-r5,pc}
;;;148
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -