📄 console.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 11/Dec/2008 13:41:50 #
# Copyright 2004-2006 IAR Systems. All rights reserved. #
# #
# Core = plain #
# Code model = near #
# Data model = large #
# Calling convention = xdata reentrant #
# Constant location = data #
# Dptr setup = 1,16 #
# Source file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\src\console.c #
# Command line = -lC D:\zigbee\演示程序\简化协议的无线收发演示\dem #
# o_pro\Debug\List\ -lA D:\zigbee\演示程序\简化协议 #
# 的无线收发演示\demo_pro\Debug\List\ -o #
# D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\Obj\ -e -z2 --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa --debug #
# --core=plain --dptr=16,1 --data_model=large #
# --code_model=near --calling_convention=xdata_reen #
# trant --place_constants=data --nr_virtual_regs 8 #
# -I "C:\Program Files\IAR Systems\Embedded #
# Workbench 4.05 Evaluation version\8051\INC\" -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.05 Evaluation version\8051\INC\CLIB\" #
# D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\src\console.c #
# List file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\List\console.lst #
# Object file = D:\zigbee\演示程序\简化协议的无线收发演示\demo_pr #
# o\Debug\Obj\console.r51 #
# #
# #
##############################################################################
D:\zigbee\演示程序\简化协议的无线收发演示\demo_pro\src\console.c
1
2
3 /*
4 V0.1 Initial Release 10/July/2006 RBR
5
6 */
7
8
9 #include "compiler.h" //compiler specific
10 #include "hal.h"
11 #include "halstack.h"
12 #include "lrwpan_config.h"
13 #include "console.h"
14
15
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
16 BYTE debug_level;
\ debug_level:
\ 000000 DS 1
17
18
19
20
21
22
23
\ In segment NEAR_CODE, align 1, keep-with-next
24 void ConsolePutInitData(int highval,int lowval)
\ ConsolePutInitData:
25 {
\ 000000 74F1 MOV A,#-0xf
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 15
\ 000005 ; Auto size: 2
\ 000005 74FE MOV A,#-0x2
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A 85..82 MOV DPL,?XSP + 0
\ 00000D 85..83 MOV DPH,?XSP + 1
\ 000010 EA MOV A,R2
\ 000011 F0 MOVX @DPTR,A
\ 000012 A3 INC DPTR
\ 000013 EB MOV A,R3
\ 000014 F0 MOVX @DPTR,A
\ 000015 8C.. MOV ?V0 + 6,R4
\ 000017 8D.. MOV ?V0 + 7,R5
26 char i;
27 BYTE dig;
28 unsigned int divider;
29 unsigned int wordvalue;
30
31 #ifndef REPDUBUGINFO
32 //return;
33 #endif
34
35 wordvalue=highval*256+lowval;
\ 000019 85..82 MOV DPL,?XSP + 0
\ 00001C 85..83 MOV DPH,?XSP + 1
\ 00001F E0 MOVX A,@DPTR
\ 000020 F8 MOV R0,A
\ 000021 A3 INC DPTR
\ 000022 E0 MOVX A,@DPTR
\ 000023 F9 MOV R1,A
\ 000024 E8 MOV A,R0
\ 000025 75F000 MOV B,#0x0
\ 000028 A4 MUL AB
\ 000029 C8 XCH A,R0
\ 00002A AAF0 MOV R2,B
\ 00002C 75F001 MOV B,#0x1
\ 00002F A4 MUL AB
\ 000030 2A ADD A,R2
\ 000031 FA MOV R2,A
\ 000032 75F000 MOV B,#0x0
\ 000035 E9 MOV A,R1
\ 000036 A4 MUL AB
\ 000037 2A ADD A,R2
\ 000038 F9 MOV R1,A
\ 000039 E5.. MOV A,?V0 + 6
\ 00003B 28 ADD A,R0
\ 00003C F8 MOV R0,A
\ 00003D E5.. MOV A,?V0 + 7
\ 00003F 39 ADDC A,R1
\ 000040 F9 MOV R1,A
\ 000041 88.. MOV ?V0 + 0,R0
\ 000043 89.. MOV ?V0 + 1,R1
36 divider=10000;
\ 000045 7E10 MOV R6,#0x10
\ 000047 7F27 MOV R7,#0x27
37
38 for(i=5; divider>wordvalue && i>1 ;i--)
\ 000049 75..05 MOV ?V0 + 2,#0x5
\ ??ConsolePutInitData_0:
\ 00004C C3 CLR C
\ 00004D E5.. MOV A,?V0 + 0
\ 00004F 9E SUBB A,R6
\ 000050 E5.. MOV A,?V0 + 1
\ 000052 9F SUBB A,R7
\ 000053 5023 JNC ??ConsolePutInitData_1
\ 000055 E5.. MOV A,?V0 + 2
\ 000057 C3 CLR C
\ 000058 9402 SUBB A,#0x2
\ 00005A 401C JC ??ConsolePutInitData_1
39 {
40 divider/=10;
\ 00005C EE MOV A,R6
\ 00005D F8 MOV R0,A
\ 00005E EF MOV A,R7
\ 00005F F9 MOV R1,A
\ 000060 7A0A MOV R2,#0xa
\ 000062 7B00 MOV R3,#0x0
\ 000064 12.... LCALL ?US_DIV_MOD
\ 000067 88.. MOV ?V0 + 4,R0
\ 000069 89.. MOV ?V0 + 5,R1
\ 00006B AE.. MOV R6,?V0 + 4
\ 00006D AF.. MOV R7,?V0 + 5
41 halPutch(' ');
\ 00006F ; Setup parameters for call to function halPutch
\ 00006F 7920 MOV R1,#0x20
\ 000071 12.... LCALL halPutch
42 }
\ 000074 15.. DEC ?V0 + 2
\ 000076 80D4 SJMP ??ConsolePutInitData_0
43 for(;i>0;i--)
\ ??ConsolePutInitData_1:
\ 000078 E5.. MOV A,?V0 + 2
\ 00007A C3 CLR C
\ 00007B 9401 SUBB A,#0x1
\ 00007D 4042 JC ??ConsolePutInitData_2
44 {
45
46 dig = (wordvalue/divider);
\ 00007F A8.. MOV R0,?V0 + 0
\ 000081 A9.. MOV R1,?V0 + 1
\ 000083 EE MOV A,R6
\ 000084 FA MOV R2,A
\ 000085 EF MOV A,R7
\ 000086 FB MOV R3,A
\ 000087 12.... LCALL ?US_DIV_MOD
\ 00008A E8 MOV A,R0
\ 00008B F5.. MOV ?V0 + 3,A
47 wordvalue = (wordvalue%divider);
\ 00008D A8.. MOV R0,?V0 + 0
\ 00008F A9.. MOV R1,?V0 + 1
\ 000091 EE MOV A,R6
\ 000092 FA MOV R2,A
\ 000093 EF MOV A,R7
\ 000094 FB MOV R3,A
\ 000095 12.... LCALL ?US_DIV_MOD
\ 000098 8A.. MOV ?V0 + 4,R2
\ 00009A 8B.. MOV ?V0 + 5,R3
\ 00009C 85.... MOV ?V0 + 0,?V0 + 4
\ 00009F 85.... MOV ?V0 + 1,?V0 + 5
48 halPutch(dig+0x30);
\ 0000A2 ; Setup parameters for call to function halPutch
\ 0000A2 7430 MOV A,#0x30
\ 0000A4 25.. ADD A,?V0 + 3
\ 0000A6 F9 MOV R1,A
\ 0000A7 12.... LCALL halPutch
49
50 divider/=10;
\ 0000AA EE MOV A,R6
\ 0000AB F8 MOV R0,A
\ 0000AC EF MOV A,R7
\ 0000AD F9 MOV R1,A
\ 0000AE 7A0A MOV R2,#0xa
\ 0000B0 7B00 MOV R3,#0x0
\ 0000B2 12.... LCALL ?US_DIV_MOD
\ 0000B5 88.. MOV ?V0 + 4,R0
\ 0000B7 89.. MOV ?V0 + 5,R1
\ 0000B9 AE.. MOV R6,?V0 + 4
\ 0000BB AF.. MOV R7,?V0 + 5
51 }
\ 0000BD 15.. DEC ?V0 + 2
\ 0000BF 80B7 SJMP ??ConsolePutInitData_1
52 halPutch('\r');
\ ??ConsolePutInitData_2:
\ 0000C1 ; Setup parameters for call to function halPutch
\ 0000C1 790D MOV R1,#0xd
\ 0000C3 12.... LCALL halPutch
53 halPutch('\n');
\ 0000C6 ; Setup parameters for call to function halPutch
\ 0000C6 790A MOV R1,#0xa
\ 0000C8 12.... LCALL halPutch
54 }
\ 0000CB 7402 MOV A,#0x2
\ 0000CD 12.... LCALL ?DEALLOC_XSTACK8
\ 0000D0 7F08 MOV R7,#0x8
\ 0000D2 02.... LJMP ?FUNC_LEAVE_XDATA
55
\ In segment NEAR_CODE, align 1, keep-with-next
56 void ConsolePutInitDataWithoutRtn(int highval,int lowval)
\ ConsolePutInitDataWithoutRtn:
57 {
\ 000000 74F1 MOV A,#-0xf
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 15
\ 000005 ; Auto size: 2
\ 000005 74FE MOV A,#-0x2
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A 85..82 MOV DPL,?XSP + 0
\ 00000D 85..83 MOV DPH,?XSP + 1
\ 000010 EA MOV A,R2
\ 000011 F0 MOVX @DPTR,A
\ 000012 A3 INC DPTR
\ 000013 EB MOV A,R3
\ 000014 F0 MOVX @DPTR,A
\ 000015 8C.. MOV ?V0 + 6,R4
\ 000017 8D.. MOV ?V0 + 7,R5
58 char i;
59 BYTE dig;
60 unsigned int divider;
61 unsigned int wordvalue;
62
63 #ifndef REPDUBUGINFO
64 //return;
65 #endif
66
67 wordvalue=highval*256+lowval;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -