⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editdec.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                  |L2.234|
0000ea  1bc0              SUBS     r0,r0,r7
0000ec  6c31              LDR      r1,[r6,#0x40]
0000ee  1e40              SUBS     r0,r0,#1
0000f0  4281              CMP      r1,r0
0000f2  d105              BNE      |L2.256|
0000f4  f85b0025          LDR      r0,[r11,r5,LSL #2]
0000f8  1c6d              ADDS     r5,r5,#1
0000fa  fb004408          MLA      r4,r0,r8,r4
0000fe  e00f              B        |L2.288|
                  |L2.256|
000100  f81a9000          LDRB     r9,[r10,r0]
000104  4648              MOV      r0,r9
000106  f7fffffe          BL       _DecChar2Int
00010a  2800              CMP      r0,#0
00010c  db04              BLT      |L2.280|
00010e  f85b1025          LDR      r1,[r11,r5,LSL #2]
000112  1c6d              ADDS     r5,r5,#1
000114  fb014400          MLA      r4,r1,r0,r4
                  |L2.280|
000118  f1b90f2d          CMP      r9,#0x2d
00011c  d100              BNE      |L2.288|
00011e  4264              RSBS     r4,r4,#0
                  |L2.288|
000120  1c7f              ADDS     r7,r7,#1
                  |L2.290|
000122  f9b6002a          LDRSH    r0,[r6,#0x2a]
000126  42b8              CMP      r0,r7
000128  dcdf              BGT      |L2.234|
00012a  4621              MOV      r1,r4
00012c  9800              LDR      r0,[sp,#0]
00012e  f7fffffe          BL       EDIT_SetValue
;;;264                  _EditDec(Digit, pObj, hObj);
;;;265                  _IncrementCursor(pObj);
000132  e7a9              B        |L2.136|
                  |L2.308|
;;;266                }
;;;267              }
;;;268            }
;;;269            break;
;;;270        }
;;;271      }
;;;272      _UpdateBuffer(hObj);
000134  9800              LDR      r0,[sp,#0]
000136  e8bd5ffc          POP      {r2-r12,lr}
00013a  f7ffbffe          B.W      _UpdateBuffer
;;;273    }
;;;274    
                          ENDP

00013e  0000              DCW      0x0000
                  |L2.320|
                          DCD      GUI_Pow10

                          AREA ||i._AddPosition||, CODE, READONLY, ALIGN=1

                  _AddPosition PROC
;;;160    #if !EDIT_DEC_DIGITONLY
;;;161    static void _AddPosition(EDIT_Obj* pObj, EDIT_Handle hObj, int Sign) {
000000  b430              PUSH     {r4,r5}
000002  460b              MOV      r3,r1
;;;162      int Pos;
;;;163      I32 v;
;;;164      v = Sign;
;;;165      Pos = pObj->MaxLen - pObj->CursorPos-1;
000004  f9b0102a          LDRSH    r1,[r0,#0x2a]
000008  6c05              LDR      r5,[r0,#0x40]
;;;166      if (pObj->NumDecs && (Pos > pObj->NumDecs)) {
00000a  f8904038          LDRB     r4,[r0,#0x38]
00000e  1b49              SUBS     r1,r1,r5              ;165
000010  1e49              SUBS     r1,r1,#1              ;165
000012  b134              CBZ      r4,|L3.34|
000014  428c              CMP      r4,r1
000016  da04              BGE      |L3.34|
;;;167        Pos--;
000018  1e49              SUBS     r1,r1,#1
00001a  e002              B        |L3.34|
                  |L3.28|
;;;168      }
;;;169      while (Pos--) {
;;;170        v *= 10;
00001c  eb020282          ADD      r2,r2,r2,LSL #2
000020  0052              LSLS     r2,r2,#1
                  |L3.34|
000022  1e49              SUBS     r1,r1,#1              ;169
000024  d2fa              BCS      |L3.28|
;;;171      }
;;;172      EDIT_SetValue(hObj, (I32)pObj->CurrentValue + v);
000026  6bc0              LDR      r0,[r0,#0x3c]
000028  bc30              POP      {r4,r5}
00002a  1881              ADDS     r1,r0,r2
00002c  4618              MOV      r0,r3
00002e  f7ffbffe          B.W      EDIT_SetValue
;;;173    }
;;;174    #endif
                          ENDP


                          AREA ||i._DecChar2Int||, CODE, READONLY, ALIGN=1

                  _DecChar2Int PROC
;;;50     */
;;;51     static int _DecChar2Int(int Char) {
000000  3830              SUBS     r0,r0,#0x30
;;;52       if ((Char >= '0') && (Char <= '9'))
000002  2809              CMP      r0,#9
000004  d901              BLS      |L4.10|
;;;53         return Char - '0';
;;;54       return -1;
000006  f04f30ff          MOV      r0,#0xffffffff
                  |L4.10|
;;;55     }
00000a  4770              BX       lr
;;;56     
                          ENDP


                          AREA ||i._IncrementCursor||, CODE, READONLY, ALIGN=1

                  _IncrementCursor PROC
;;;144    */
;;;145    static void _IncrementCursor(EDIT_Obj* pObj) {
000000  b510              PUSH     {r4,lr}
;;;146      EDIT__SetCursorPos(pObj, pObj->CursorPos + 1);
000002  6c01              LDR      r1,[r0,#0x40]
000004  4604              MOV      r4,r0                 ;145
000006  1c49              ADDS     r1,r1,#1
000008  f7fffffe          BL       EDIT__SetCursorPos
;;;147      if (EDIT__GetCurrentChar(pObj) == '.') {
00000c  4620              MOV      r0,r4
00000e  f7fffffe          BL       EDIT__GetCurrentChar
000012  282e              CMP      r0,#0x2e
000014  d10d              BNE      |L5.50|
;;;148        if (pObj->CursorPos < (pObj->MaxLen - 1)) {
000016  f9b4002a          LDRSH    r0,[r4,#0x2a]
00001a  6c21              LDR      r1,[r4,#0x40]
00001c  1e40              SUBS     r0,r0,#1
00001e  4281              CMP      r1,r0
000020  da01              BGE      |L5.38|
;;;149          EDIT__SetCursorPos(pObj, pObj->CursorPos + 1);
000022  1c49              ADDS     r1,r1,#1
000024  e000              B        |L5.40|
                  |L5.38|
;;;150        } else {
;;;151          EDIT__SetCursorPos(pObj, pObj->CursorPos - 1);
000026  1e49              SUBS     r1,r1,#1
                  |L5.40|
000028  4620              MOV      r0,r4
00002a  e8bd4010          POP      {r4,lr}
00002e  f7ffbffe          B.W      EDIT__SetCursorPos
                  |L5.50|
;;;152        }
;;;153      }
;;;154    }
000032  bd10              POP      {r4,pc}
;;;155    
                          ENDP


                          AREA ||i._MakeNegative||, CODE, READONLY, ALIGN=1

                  _MakeNegative PROC
;;;123    */
;;;124    static void _MakeNegative(EDIT_Obj* pObj, EDIT_Handle hObj) {
000000  4602              MOV      r2,r0
000002  4608              MOV      r0,r1
;;;125      if ((I32)pObj->CurrentValue > 0) {
000004  6bd1              LDR      r1,[r2,#0x3c]
000006  2900              CMP      r1,#0
000008  dd02              BLE      |L6.16|
;;;126        EDIT_SetValue(hObj, (I32)pObj->CurrentValue * -1);
00000a  4249              RSBS     r1,r1,#0
00000c  f7ffbffe          B.W      EDIT_SetValue
                  |L6.16|
;;;127      }
;;;128    }
000010  4770              BX       lr
;;;129    
                          ENDP


                          AREA ||i._MakePositive||, CODE, READONLY, ALIGN=1

                  _MakePositive PROC
;;;113    */
;;;114    static void _MakePositive(EDIT_Obj* pObj, EDIT_Handle hObj) {
000000  4602              MOV      r2,r0
000002  4608              MOV      r0,r1
;;;115      if ((I32)pObj->CurrentValue < 0) {
000004  6bd1              LDR      r1,[r2,#0x3c]
000006  2900              CMP      r1,#0
000008  da02              BGE      |L7.16|
;;;116        EDIT_SetValue(hObj, (I32)pObj->CurrentValue * -1);
00000a  4249              RSBS     r1,r1,#0
00000c  f7ffbffe          B.W      EDIT_SetValue
                  |L7.16|
;;;117      }
;;;118    }
000010  4770              BX       lr
;;;119    
                          ENDP


                          AREA ||i._SwapSign||, CODE, READONLY, ALIGN=1

                  _SwapSign PROC
;;;133    */
;;;134    static void _SwapSign(EDIT_Obj* pObj, EDIT_Handle hObj) {
000000  6bc2              LDR      r2,[r0,#0x3c]
;;;135      if ((I32)pObj->CurrentValue > 0)
000002  2a00              CMP      r2,#0
000004  dd01              BLE      |L8.10|
;;;136        _MakeNegative(pObj, hObj);
000006  f7ffbffe          B.W      _MakeNegative
                  |L8.10|
;;;137      else
;;;138        _MakePositive(pObj, hObj);
00000a  f7ffbffe          B.W      _MakePositive
;;;139    }
;;;140    
                          ENDP


                          AREA ||i._UpdateBuffer||, CODE, READONLY, ALIGN=1

                  _UpdateBuffer PROC
;;;60     */
;;;61     static void _UpdateBuffer(EDIT_Handle hObj) {
000000  b538              PUSH     {r3-r5,lr}
;;;62       char * s;
;;;63       EDIT_Obj * pObj;
;;;64       pObj = EDIT_H2P(hObj); /* The GUI needs not to be locked here. This function is called only from EDIT_AddKey which has already locked the GUI */
000002  f7fffffe          BL       GUI_ALLOC_h2p
000006  4604              MOV      r4,r0
;;;65       s = (char*) GUI_ALLOC_h2p(pObj->hpText);
000008  f9b00028          LDRSH    r0,[r0,#0x28]
00000c  f7fffffe          BL       GUI_ALLOC_h2p
;;;66       if (pObj->Flags == GUI_EDIT_SIGNED) {
000010  9000              STR      r0,[sp,#0]
000012  f894004a          LDRB     r0,[r4,#0x4a]
000016  2801              CMP      r0,#1
000018  d109              BNE      |L9.46|
;;;67         I32 Result = GUI_AddSign(pObj->CurrentValue, &s);
00001a  4669              MOV      r1,sp
00001c  6be0              LDR      r0,[r4,#0x3c]
00001e  f7fffffe          BL       GUI_AddSign
;;;68         GUI_AddDecShift(Result, pObj->MaxLen - 1, pObj->NumDecs, &s);
000022  8d61              LDRH     r1,[r4,#0x2a]
000024  f8942038          LDRB     r2,[r4,#0x38]
000028  1e49              SUBS     r1,r1,#1
00002a  b2c9              UXTB     r1,r1
;;;69       } else {
00002c  e004              B        |L9.56|
                  |L9.46|
;;;70         GUI_AddDecShift(pObj->CurrentValue, pObj->MaxLen, pObj->NumDecs, &s);
00002e  8d60              LDRH     r0,[r4,#0x2a]
000030  f8942038          LDRB     r2,[r4,#0x38]
000034  b2c1              UXTB     r1,r0
000036  6be0              LDR      r0,[r4,#0x3c]
                  |L9.56|
000038  466b              MOV      r3,sp                 ;68
00003a  f7fffffe          BL       GUI_AddDecShift
;;;71       }
;;;72     }
00003e  bd38              POP      {r3-r5,pc}
;;;73     
                          ENDP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -