📄 editfloat.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\editfloat.o --depend=.\Obj\editfloat.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\Widget\EDITFloat.c]
THUMB
AREA ||i.EDIT_GetFloatValue||, CODE, READONLY, ALIGN=2
EDIT_GetFloatValue PROC
;;;56 */
;;;57 float EDIT_GetFloatValue(EDIT_Handle hObj) {
000000 b570 PUSH {r4-r6,lr}
000002 0001 MOVS r1,r0
;;;58 float Value = 0;
000004 f04f0000 MOV r0,#0
;;;59 if (hObj) {
000008 d013 BEQ |L1.50|
;;;60 float Scale;
;;;61 EDIT_Obj * pObj;
;;;62 WM_LOCK();
;;;63 pObj = EDIT_H2P(hObj);
00000a 4608 MOV r0,r1
00000c f7fffffe BL GUI_ALLOC_h2p
000010 4604 MOV r4,r0
;;;64 Scale = (float)GUI_Pow10[pObj->NumDecs];
000012 f8900038 LDRB r0,[r0,#0x38]
000016 4907 LDR r1,|L1.52|
000018 f8510020 LDR r0,[r1,r0,LSL #2]
00001c f7fffffe BL __aeabi_ui2f
000020 4605 MOV r5,r0
;;;65 Value = (float)(I32)pObj->CurrentValue / Scale;
000022 6be0 LDR r0,[r4,#0x3c]
000024 f7fffffe BL __aeabi_i2f
000028 4629 MOV r1,r5
00002a e8bd4070 POP {r4-r6,lr}
00002e f7ffbffe B.W __aeabi_fdiv
|L1.50|
;;;66 WM_UNLOCK();
;;;67 }
;;;68 return Value;
;;;69 }
000032 bd70 POP {r4-r6,pc}
;;;70
ENDP
|L1.52|
DCD GUI_Pow10
AREA ||i.EDIT_SetFloatMode||, CODE, READONLY, ALIGN=2
EDIT_SetFloatMode PROC
;;;38 */
;;;39 void EDIT_SetFloatMode(EDIT_Handle hEdit, float Value, float Min, float Max, int Shift, U8 Flags) {
000000 e92d5ffc PUSH {r2-r12,lr}
;;;40 I32 _Value, _Min, _Max;
;;;41 float Scale;
;;;42 if (hEdit) {
000004 e9dd6b0c LDRD r6,r11,[sp,#0x30]
000008 0005 MOVS r5,r0 ;39
00000a 460c MOV r4,r1 ;39
00000c 4617 MOV r7,r2 ;39
00000e 469a MOV r10,r3 ;39
000010 d038 BEQ |L2.132|
;;;43 WM_LOCK();
;;;44 Scale =(float)GUI_Pow10[Shift];
000012 481d LDR r0,|L2.136|
000014 f8500026 LDR r0,[r0,r6,LSL #2]
000018 f7fffffe BL __aeabi_ui2f
00001c 4680 MOV r8,r0
;;;45 _Value = floor(Scale * Value + 0.5);
00001e 4621 MOV r1,r4
000020 f7fffffe BL __aeabi_fmul
000024 f7fffffe BL __aeabi_f2d
000028 a418 ADR r4,|L2.140|
00002a e9d42300 LDRD r2,r3,[r4,#0]
00002e f7fffffe BL __aeabi_dadd
000032 f7fffffe BL floor
000036 f7fffffe BL __aeabi_d2iz
00003a 4681 MOV r9,r0
;;;46 _Min = floor(Scale * Min + 0.5);
00003c 4639 MOV r1,r7
00003e 4640 MOV r0,r8
000040 f7fffffe BL __aeabi_fmul
000044 f7fffffe BL __aeabi_f2d
000048 e9d42300 LDRD r2,r3,[r4,#0]
00004c f7fffffe BL __aeabi_dadd
000050 f7fffffe BL floor
000054 f7fffffe BL __aeabi_d2iz
000058 4607 MOV r7,r0
;;;47 _Max = floor(Scale * Max + 0.5);
00005a 4651 MOV r1,r10
00005c 4640 MOV r0,r8
00005e f7fffffe BL __aeabi_fmul
000062 f7fffffe BL __aeabi_f2d
000066 cc0c LDM r4!,{r2,r3}
000068 f7fffffe BL __aeabi_dadd
00006c f7fffffe BL floor
000070 f7fffffe BL __aeabi_d2iz
;;;48 EDIT_SetDecMode(hEdit, _Value, _Min, _Max, Shift, Flags);
000074 e9cd6b00 STRD r6,r11,[sp,#0]
000078 4603 MOV r3,r0
00007a 463a MOV r2,r7
00007c 4649 MOV r1,r9
00007e 4628 MOV r0,r5
000080 f7fffffe BL EDIT_SetDecMode
|L2.132|
;;;49 WM_UNLOCK();
;;;50 }
;;;51 }
000084 e8bd9ffc POP {r2-r12,pc}
;;;52
ENDP
|L2.136|
DCD GUI_Pow10
|L2.140|
00008c 00000000
000090 3fe00000 DCFD 0x3fe0000000000000 ; 0.5
AREA ||i.EDIT_SetFloatValue||, CODE, READONLY, ALIGN=2
EDIT_SetFloatValue PROC
;;;74 */
;;;75 void EDIT_SetFloatValue(EDIT_Handle hObj, float Value) {
000000 b570 PUSH {r4-r6,lr}
000002 0004 MOVS r4,r0
000004 460d MOV r5,r1
;;;76 if (hObj) {
000006 d021 BEQ |L3.76|
;;;77 float Scale;
;;;78 EDIT_Obj * pObj;
;;;79 WM_LOCK();
;;;80 pObj = EDIT_H2P(hObj);
000008 4620 MOV r0,r4
00000a f7fffffe BL GUI_ALLOC_h2p
;;;81 Scale = (float)GUI_Pow10[pObj->NumDecs];
00000e f8900038 LDRB r0,[r0,#0x38]
000012 490f LDR r1,|L3.80|
000014 f8510020 LDR r0,[r1,r0,LSL #2]
000018 f7fffffe BL __aeabi_ui2f
;;;82 Value *= Scale;
00001c 4601 MOV r1,r0
00001e 4628 MOV r0,r5
000020 f7fffffe BL __aeabi_fmul
000024 4605 MOV r5,r0
;;;83 EDIT_SetValue(hObj, (I32)(Value + (Value >= 0 ? 0.5 : -0.5)));
000026 f7fffffe BL __aeabi_f2d
00002a f1154fff CMN r5,#0x7f800000
00002e d201 BCS |L3.52|
000030 a308 ADR r3,|L3.84|
000032 e000 B |L3.54|
|L3.52|
000034 a309 ADR r3,|L3.92|
|L3.54|
000036 cb0c LDM r3,{r2,r3}
000038 f7fffffe BL __aeabi_dadd
00003c f7fffffe BL __aeabi_d2iz
000040 4601 MOV r1,r0
000042 4620 MOV r0,r4
000044 e8bd4070 POP {r4-r6,lr}
000048 f7ffbffe B.W EDIT_SetValue
|L3.76|
;;;84 WM_UNLOCK();
;;;85 }
;;;86 }
00004c bd70 POP {r4-r6,pc}
;;;87
ENDP
00004e 0000 DCW 0x0000
|L3.80|
DCD GUI_Pow10
|L3.84|
000054 00000000
000058 3fe00000 DCFD 0x3fe0000000000000 ; 0.5
|L3.92|
00005c 00000000
000060 bfe00000 DCFD 0xbfe0000000000000 ; -0.5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -