📄 main.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Wed Aug 30 14:25:31 2006
1 processor 16F876A
2 opt pw 79
3 psect __Z49231UD_,global,delta=1
4 psect text3,local,class=CODE,delta=2
5 psect intcode,global,class=CODE,delta=2
6 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
7 psect intret,global,class=CODE,delta=2
8 psect intentry,global,class=CODE,delta=2
9 psect intsave,global,class=BANK0,space=1,delta
+ =1
10 psect text4,local,class=CODE,delta=2
11 psect text5,local,class=CODE,delta=2
12 psect text11,local,class=CODE,delta=2
13 psect idloc,global,class=IDLOC,delta=2
14 psect rbit_0,global,bit,class=BANK0,space=1,de
+ lta=1
15 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
16 psect rbss_1,global,class=BANK1,space=1,delta=
+ 1
17 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27 0000
28
29 psect intcode
30 ;main.c: 68: void interrupt UartINT(void)
31 ;main.c: 69: {
32 0017 _UartINT
33 0017 int_func
34 ; _temp assigned to ?a_UartINT+0
35 0000 _UartINT$temp set ?a_UartINT
36 ;main.c: 70: unsigned char temp;
37 0017 0183 clrf 3 ;select bank 0
38 0018 1E8C btfss 12,5
39 0019 285D goto l13
40 ;main.c: 73: temp=RCREG;
41 001A 081A movf 26,w ;volatile
42 001B 00E4 movwf ?a_UartINT
43 ;main.c: 75: {
44 ;main.c: 74: if(!RxingFlag)
45 001C 18A0 btfsc _RxingFlag/(0+8),_RxingFlag& (0+7)
46 001D 2824 goto L1
47 001E 3AAA xorlw -86
48 001F 1D03 btfss 3,2
49 0020 285D goto l13
50 ;main.c: 77: {
51 0021 01A2 clrf _RevNum
52 ;main.c: 79: RxingFlag=1;
53 0022 14A0 bsf _RxingFlag/(0+8),_RxingFlag& (0+7)
54 ;main.c: 80: }
55 ;main.c: 82: else
56 0023 285D goto l13
57 ;main.c: 83: {
58 0024 L1
59 0024 3A0D xorlw 13
60 0025 1D03 btfss 3,2
61 0026 2838 goto l18
62 0027 0822 movf _RevNum,w
63 0028 00F0 movwf btemp
64 0029 01F1 clrf btemp+1
65 002A 30FD movlw 253
66 002B 07F0 addwf btemp
67 002C 1803 btfsc 3,0
68 002D 0AF1 incf btemp+1
69 002E 30FF movlw 255
70 002F 07F1 addwf btemp+1
71 0030 0833 movf _RecBuff+1,w
72 0031 0670 xorwf btemp,w
73 0032 0471 iorwf btemp+1,w
74 0033 1D03 btfss 3,2
75 0034 2838 goto l18
76 ;main.c: 85: {
77 0035 10A0 bcf _RxingFlag/(0+8),_RxingFlag& (0+7)
78 ;main.c: 87: f_rx_evt=1;
79 0036 1520 bsf _f_rx_evt/(0+8),_f_rx_evt& (0+7)
80 ;main.c: 88: }
81 0037 285D goto l13
82 0038 l18
83 ;main.c: 90: {
84 0038 0822 movf _RevNum,w
85 0039 3E32 addlw _RecBuff
86 003A 0084 movwf 4
87 003B 1383 bcf 3,7
88 003C 0864 movf ?a_UartINT,w
89 003D 0080 movwf 0
90 003E 0AA2 incf _RevNum
91 ;main.c: 92: if((RevNum>20)||(RevNum>RecBuff[1]
+ +3))
92 003F 3015 movlw 21
93 0040 0222 subwf _RevNum,w
94 0041 1803 btfsc 3,0
95 0042 2859 goto u120
96 0043 0822 movf _RevNum,w
97 0044 00F0 movwf btemp
98 0045 01F1 clrf btemp+1
99 0046 0833 movf _RecBuff+1,w
100 0047 00F2 movwf btemp+2
101 0048 01F3 clrf btemp+3
102 0049 3003 movlw 3
103 004A 07F2 addwf btemp+2
104 004B 1803 btfsc 3,0
105 004C 0AF3 incf btemp+3
106 004D 0873 movf btemp+3,w
107 004E 3A80 xorlw 128
108 004F 00F4 movwf btemp+4
109 0050 0871 movf btemp+1,w
110 0051 3A80 xorlw 128
111 0052 0274 subwf btemp+4,w
112 0053 1D03 btfss 3,2
113 0054 2857 goto u115
114 0055 0870 movf btemp,w
115 0056 0272 subwf btemp+2,w
116 0057 u115
117 0057 1803 btfsc 3,0
118 0058 285D goto l13
119 0059 u120
120 ;main.c: 93: {
121 0059 1283 bcf 3,5
122 005A 1303 bcf 3,6 ;carry unused
123 005B 10A0 bcf _RxingFlag/(0+8),_RxingFlag& (0+7)
124 ;main.c: 95: RevNum=0;
125 005C 01A2 clrf _RevNum
126 ;main.c: 96: }
127 ;main.c: 98: }
128 ;main.c: 99: }
129 005D l13
130
131 psect intsave_0
132 0075 saved_w
133 0075 ds 1
134
135 psect intret
136 0067 0866 movf saved_fsr,w
137 0068 0084 movwf 4 ;restore FSR
138 0069 0867 movf saved_pclath,w
139 006A 008A movwf 10
140 006B int_restore
141 006B 0865 movf saved_status,w
142 006C 0083 movwf 3
143 006D 0EF5 swapf saved_w
144 006E 0E75 swapf saved_w,w
145 006F 0009 retfie
146
147 psect intentry
148 0004 int_entry
149 0004 00F5 movwf saved_w
150 0005 0803 movf 3,w
151 0006 0183 clrf 3
152 0007 00E5 movwf saved_status
153 0008 0804 movf 4,w
154 0009 00E6 movwf saved_fsr
155 000A 080A movf 10,w
156 000B 00E7 movwf saved_pclath
157 000C 018A clrf 10
158
159 psect intsave
160 0065 saved_status
161 0065 ds 1
162 0066 saved_fsr
163 0066 ds 1
164 0067 saved_pclath
165 0067 ds 1
166
167 psect text4
168 ;main.c: 102: void RF_write_byte(unsigned char
+ WData)
169 ;main.c: 103: {
170 064F _RF_write_byte
171 ; _WData assigned to ?a_RF_write_byte+0
172 0000 _RF_write_byte$WData set ?a_RF_write_byte
173 ; _i assigned to ?a_RF_write_byte+1
174 0000 _RF_write_byte$i set ?a_RF_write_byte+1
175 ;_WData stored from w
176 064F 0183 clrf 3 ;select bank 0
177 0650 00DA movwf ?a_RF_write_byte
178 ;main.c: 104: unsigned char i;
179 0651 1683 bsf 3,5
180 0652 1187 bcf 7,3
181 ;main.c: 108: TRISC4=0;
182 0653 1207 bcf 7,4
183 ;main.c: 109: for(i=0;i<8;i++)
184 0654 1283 bcf 3,5
185 0655 01DB clrf ?a_RF_write_byte+1
186 0656 l22
187 ;main.c: 110: {
188 ;main.c: 111: flag=WData&0x80;
189 0656 1020 bcf F473/(0+8),F473& (0+7)
190 ;main.c: 112: RC4=0;
191 0657 1207 bcf 7,4
192 ;main.c: 113: if(flag) RC4=1;
193 0658 1820 btfsc F473/(0+8),F473& (0+7)
194 0659 1607 bsf 7,4
195 ;main.c: 114: WData<<=1;
196 065A 1003 bcf 3,0
197 065B 0DDA rlf ?a_RF_write_byte
198 ;main.c: 115: RC3=1;
199 065C 1587 bsf 7,3
200 ;main.c: 116: asm("nop");
201 065D 0000 nop ;#
202 ;main.c: 117: asm("nop");
203 065E 0000 nop ;#
204 ;main.c: 118: asm("nop");
205 065F 0000 nop ;#
206 ;main.c: 119: asm("nop");
207 0660 0000 nop ;#
208 ;main.c: 120: RC3=0;
209 0661 1187 bcf 7,3
210 ;main.c: 121: }
211 0662 0ADB incf ?a_RF_write_byte+1
212 0663 3008 movlw 8
213 0664 025B subwf ?a_RF_write_byte+1,w
214 0665 1803 btfsc 3,0
215 0666 0008 return
216 0667 2E56 goto l22
217
218 psect text5
219 ;main.c: 124: unsigned char RF_read_byte(void)
220 ;main.c: 125: {
221 0668 _RF_read_byte
222 ; _i assigned to ?a_RF_read_byte+0
223 0000 _RF_read_byte$i set ?a_RF_read_byte
224 ; _result assigned to ?a_RF_read_byte+1
225 0000 _RF_read_byte$result set ?a_RF_read_byte+1
226 ;main.c: 126: unsigned char i;
227 0668 0183 clrf 3 ;select bank 0
228 0669 01DB clrf ?a_RF_read_byte+1
229 ;main.c: 129: TRISC3=0;
230 066A 1683 bsf 3,5
231 066B 1187 bcf 7,3
232 ;main.c: 130: TRISC4=1;
233 066C 1607 bsf 7,4
234 ;main.c: 131: for(i=0;i<8;i++)
235 066D 1283 bcf 3,5
236 066E 01DA clrf ?a_RF_read_byte
237 ;main.c: 132: {
238 ;main.c: 133: result<<=1;
239 066F 1003 bcf 3,0
240 0670 L2
241 0670 0DDB rlf ?a_RF_read_byte+1
242 ;main.c: 134: RC3=1;
243 0671 1587 bsf 7,3
244 ;main.c: 135: asm("nop");
245 0672 0000 nop ;#
246 ;main.c: 136: if(RC4) result++;
247 0673 1A07 btfsc 7,4
248 0674 0ADB incf ?a_RF_read_byte+1
249 ;main.c: 137: asm("nop");
250 0675 0000 nop ;#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -