📄 osal.lst
字号:
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 0
211 if ( len == 2 )
\ 000005 7402 MOV A,#0x2
\ 000007 69 XRL A,R1
\ 000008 701D JNZ ??osal_build_uint32_0
212 return ( BUILD_UINT32( swapped[0], swapped[1], 0L, 0L ) );
\ 00000A 8A82 MOV DPL,R2
\ 00000C 8B83 MOV DPH,R3
\ 00000E 12.... LCALL ?Subroutine15 & 0xFFFF
\ ??CrossCallReturnLabel_47:
\ 000011 78.. MOV R0,#?V0 + 4
\ 000013 12.... LCALL ?L_SHL
\ 000016 78.. MOV R0,#?V0 + 0
\ 000018 79.. MOV R1,#?V0 + 4
\ 00001A 12.... LCALL ?L_ADD
\ 00001D AA.. MOV R2,?V0 + 0
\ 00001F AB.. MOV R3,?V0 + 1
\ 000021 AC.. MOV R4,?V0 + 2
\ 000023 AD.. MOV R5,?V0 + 3
\ 000025 8059 SJMP ??osal_build_uint32_1
213 else if ( len == 3 )
\ ??osal_build_uint32_0:
\ 000027 7403 MOV A,#0x3
\ 000029 69 XRL A,R1
\ 00002A 7016 JNZ ??osal_build_uint32_2
214 return ( BUILD_UINT32( swapped[0], swapped[1], swapped[2], 0L ) );
\ 00002C 8A82 MOV DPL,R2
\ 00002E 8B83 MOV DPH,R3
\ 000030 12.... LCALL ?Subroutine1 & 0xFFFF
\ ??CrossCallReturnLabel_6:
\ 000033 12.... LCALL ?L_SHL
\ 000036 78.. MOV R0,#?V0 + 0
\ 000038 79.. MOV R1,#?V0 + 4
\ 00003A 12.... LCALL ?L_ADD
\ 00003D 12.... LCALL ?Subroutine8 & 0xFFFF
\ ??CrossCallReturnLabel_26:
\ 000040 80CF SJMP ??CrossCallReturnLabel_47
215 else if ( len == 4 )
\ ??osal_build_uint32_2:
\ 000042 7404 MOV A,#0x4
\ 000044 69 XRL A,R1
\ 000045 8A82 MOV DPL,R2
\ 000047 8B83 MOV DPH,R3
\ 000049 702D JNZ ??osal_build_uint32_3
216 return ( BUILD_UINT32( swapped[0], swapped[1], swapped[2], swapped[3] ) );
\ 00004B 12.... LCALL ?Subroutine1 & 0xFFFF
\ ??CrossCallReturnLabel_7:
\ 00004E 12.... LCALL ?L_SHL
\ 000051 78.. MOV R0,#?V0 + 0
\ 000053 79.. MOV R1,#?V0 + 4
\ 000055 12.... LCALL ?L_ADD
\ 000058 12.... LCALL ?Subroutine8 & 0xFFFF
\ ??CrossCallReturnLabel_27:
\ 00005B 78.. MOV R0,#?V0 + 4
\ 00005D 12.... LCALL ?L_SHL
\ 000060 78.. MOV R0,#?V0 + 0
\ 000062 79.. MOV R1,#?V0 + 4
\ 000064 12.... LCALL ?L_ADD
\ 000067 8A82 MOV DPL,R2
\ 000069 8B83 MOV DPH,R3
\ 00006B A3 INC DPTR
\ 00006C A3 INC DPTR
\ 00006D A3 INC DPTR
\ 00006E E0 MOVX A,@DPTR
\ 00006F F5.. MOV ?V0 + 4,A
\ 000071 75..00 MOV ?V0 + 6,#0x0
\ 000074 7418 MOV A,#0x18
\ 000076 8099 SJMP ??CrossCallReturnLabel_47
217 else
218 return ( (uint32)swapped[0] );
\ ??osal_build_uint32_3:
\ 000078 E0 MOVX A,@DPTR
\ 000079 FA MOV R2,A
\ 00007A 7B00 MOV R3,#0x0
\ 00007C 7C00 MOV R4,#0x0
\ 00007E 7D00 MOV R5,#0x0
\ ??osal_build_uint32_1:
\ 000080 REQUIRE ?Subroutine24
\ 000080 ; // Fall through to label ?Subroutine24
219 }
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine24:
\ 000000 7F08 MOV R7,#0x8
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine8:
\ 000000 8A82 MOV DPL,R2
\ 000002 8B83 MOV DPH,R3
\ 000004 A3 INC DPTR
\ 000005 A3 INC DPTR
\ 000006 E0 MOVX A,@DPTR
\ 000007 F5.. MOV ?V0 + 4,A
\ 000009 75..00 MOV ?V0 + 5,#0x0
\ 00000C 7410 MOV A,#0x10
\ 00000E 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine1:
\ 000000 12.... LCALL ?Subroutine15 & 0xFFFF
\ ??CrossCallReturnLabel_48:
\ 000003 78.. MOV R0,#?V0 + 4
\ 000005 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine15:
\ 000000 E0 MOVX A,@DPTR
\ 000001 F5.. MOV ?V0 + 0,A
\ 000003 75..00 MOV ?V0 + 1,#0x0
\ 000006 75..00 MOV ?V0 + 2,#0x0
\ 000009 75..00 MOV ?V0 + 3,#0x0
\ 00000C A3 INC DPTR
\ 00000D E0 MOVX A,@DPTR
\ 00000E F5.. MOV ?V0 + 4,A
\ 000010 75..00 MOV ?V0 + 5,#0x0
\ 000013 75..00 MOV ?V0 + 6,#0x0
\ 000016 75..00 MOV ?V0 + 7,#0x0
\ 000019 7408 MOV A,#0x8
\ 00001B 22 RET
220
221 #if !defined ( ZBIT ) && !defined ( ZBIT2 )
222 /*********************************************************************
223 * @fn _ltoa
224 *
225 * @brief
226 *
227 * convert a long unsigned int to a string.
228 *
229 * @param l - long to convert
230 * @param buf - buffer to convert to
231 * @param radix - 10 dec, 16 hex
232 *
233 * @return pointer to buffer
234 */
\ In segment BANKED_CODE, align 1, keep-with-next
235 unsigned char * _ltoa(unsigned long l, unsigned char *buf, unsigned char radix)
\ _ltoa:
236 {
\ 000000 74F0 MOV A,#-0x10
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 36
\ 000005 74DC MOV A,#-0x24
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A 7402 MOV A,#0x2
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
\ 00000F EA MOV A,R2
\ 000010 F0 MOVX @DPTR,A
\ 000011 A3 INC DPTR
\ 000012 EB MOV A,R3
\ 000013 F0 MOVX @DPTR,A
\ 000014 A3 INC DPTR
\ 000015 EC MOV A,R4
\ 000016 F0 MOVX @DPTR,A
\ 000017 A3 INC DPTR
\ 000018 ED MOV A,R5
\ 000019 F0 MOVX @DPTR,A
237 #if defined( __GNUC__ )
238 return ( (char*)ltoa( l, buf, radix ) );
239 #else
240 unsigned char tmp1[10] = "", tmp2[10] = "", tmp3[10] = "";
\ 00001A 7406 MOV A,#0x6
\ 00001C 12.... LCALL ?XSTACK_DISP0_8
\ 00001F AC82 MOV R4,DPL
\ 000021 AD83 MOV R5,DPH
\ 000023 7583.. MOV DPH,#((`?<Constant "">` >> 8) & 0xff)
\ 000026 7582.. MOV DPL,#(`?<Constant "">` & 0xff)
\ 000029 740A MOV A,#0xa
\ 00002B 12.... LCALL ?MOVE_LONG8_XDATA_XDATA
\ 00002E 7583.. MOV DPH,#((`?<Constant "">_1` >> 8) & 0xff)
\ 000031 7582.. MOV DPL,#(`?<Constant "">_1` & 0xff)
\ 000034 740A MOV A,#0xa
\ 000036 12.... LCALL ?MOVE_LONG8_XDATA_XDATA
\ 000039 7583.. MOV DPH,#((`?<Constant "">_2` >> 8) & 0xff)
\ 00003C 7582.. MOV DPL,#(`?<Constant "">_2` & 0xff)
\ 00003F 740A MOV A,#0xa
\ 000041 12.... LCALL ?MOVE_LONG8_XDATA_XDATA
241 unsigned short num1, num2, num3;
242 unsigned char i;
243
244 buf[0] = '\0';
\ 000044 7434 MOV A,#0x34
\ 000046 12.... LCALL ?XSTACK_DISP0_8
\ 000049 E0 MOVX A,@DPTR
\ 00004A F8 MOV R0,A
\ 00004B A3 INC DPTR
\ 00004C E0 MOVX A,@DPTR
\ 00004D F583 MOV DPH,A
\ 00004F 8882 MOV DPL,R0
\ 000051 E4 CLR A
\ 000052 F0 MOVX @DPTR,A
245
246 if ( radix == 10 )
\ 000053 740A MOV A,#0xa
\ 000055 69 XRL A,R1
\ 000056 6003 JZ $+5
\ 000058 02.... LJMP ??_ltoa_0 & 0xFFFF
247 {
248 num1 = l % 10000;
\ 00005B 7402 MOV A,#0x2
\ 00005D 12.... LCALL ?XSTACK_DISP0_8
\ 000060 78.. MOV R0,#?V0 + 4
\ 000062 12.... LCALL ?L_MOV_X
\ 000065 90.... MOV DPTR,#__Constant_2710
\ 000068 78.. MOV R0,#?V0 + 0
\ 00006A 12.... LCALL ?L_MOV_X
\ 00006D 78.. MOV R0,#?V0 + 4
\ 00006F 79.. MOV R1,#?V0 + 0
\ 000071 12.... LCALL ?UL_DIV_MOD
\ 000074 85..82 MOV DPL,?XSP + 0
\ 000077 85..83 MOV DPH,?XSP + 1
\ 00007A E5.. MOV A,?V0 + 0
\ 00007C F0 MOVX @DPTR,A
\ 00007D A3 INC DPTR
\ 00007E E5.. MOV A,?V0 + 1
\ 000080 F0 MOVX @DPTR,A
249 num2 = (l / 10000) % 10000;
\ 000081 7402 MOV A,#0x2
\ 000083 12.... LCALL ?XSTACK_DISP0_8
\ 000086 78.. MOV R0,#?V0 + 4
\ 000088 12.... LCALL ?L_MOV_X
\ 00008B 90.... MOV DPTR,#__Constant_2710
\ 00008E 78.. MOV R0,#?V0 + 0
\ 000090 12.... LCALL ?L_MOV_X
\ 000093 78.. MOV R0,#?V0 + 4
\ 000095 79.. MOV R1,#?V0 + 0
\ 000097 12.... LCALL ?UL_DIV_MOD
\ 00009A 90.... MOV DPTR,#__Constant_2710
\ 00009D 78.. MOV R0,#?V0 + 0
\ 00009F 12.... LCALL ?L_MOV_X
\ 0000A2 78.. MOV R0,#?V0 + 4
\ 0000A4 79.. MOV R1,#?V0 + 0
\ 0000A6 12.... LCALL ?UL_DIV_MOD
\ 0000A9 AE.. MOV R6,?V0 + 0
\ 0000AB AF.. MOV R7,?V0 + 1
250 num3 = (unsigned short)(l / 100000000);
\ 0000AD 7402 MOV A,#0x2
\ 0000AF 12.... LCALL ?XSTACK_DISP0_8
\ 0000B2 78.. MOV R0,#?V0 + 4
\ 0000B4 12.... LCALL ?L_MOV_X
\ 0000B7 90.... MOV DPTR,#__Constant_5f5e100
\ 0000BA 78.. MOV R0,#?V0 + 0
\ 0000BC 12.... LCALL ?L_MOV_X
\ 0000BF 78.. MOV R0,#?V0 + 4
\ 0000C1 79.. MOV R1,#?V0 + 0
\ 0000C3 12.... LCALL ?UL_DIV_MOD
\ 0000C6 85.... MOV ?V0 + 6,?V0 + 4
\ 0000C9 85.... MOV ?V0 + 7,?V0 + 5
251
252 if (num3) _itoa(num3, tmp3, 10);
\ 0000CC E5.. MOV A,?V0 + 6
\ 0000CE 7002 JNZ ??_ltoa_1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -