📄 softuart.lst
字号:
1 .file "softuart.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global __vector_9
20 __vector_9:
21 .LFB2:
22 .LM1:
23 /* prologue: frame size=0 */
24 0000 1F92 push __zero_reg__
25 0002 0F92 push __tmp_reg__
26 0004 0FB6 in __tmp_reg__,__SREG__
27 0006 0F92 push __tmp_reg__
28 0008 1124 clr __zero_reg__
29 000a 8F93 push r24
30 000c 9F93 push r25
31 000e EF93 push r30
32 0010 FF93 push r31
33 /* prologue end (size=9) */
34 .LM2:
35 0012 81EC ldi r24,lo8(-63)
36 0014 82BF out 82-0x20,r24
37 .LM3:
38 0016 8091 0000 lds r24,flag_tx_ready
39 001a 8823 tst r24
40 001c 01F0 breq .L2
41 .LM4:
42 001e 8091 0000 lds r24,timer_tx_ctr
43 .LVL0:
44 .LM5:
45 0022 8150 subi r24,lo8(-(-1))
46 0024 01F4 brne .L4
47 .LM6:
48 0026 8091 0000 lds r24,internal_tx_buffer
49 002a 9091 0000 lds r25,(internal_tx_buffer)+1
50 .LVL1:
51 002e 80FF sbrs r24,0
52 0030 00C0 rjmp .L6
53 .LM7:
54 0032 979A sbi 50-0x20,7
55 0034 00C0 rjmp .L8
56 .L6:
57 .LM8:
58 0036 9798 cbi 50-0x20,7
59 .L8:
60 .LM9:
61 0038 8091 0000 lds r24,internal_tx_buffer
62 003c 9091 0000 lds r25,(internal_tx_buffer)+1
63 0040 9695 lsr r25
64 0042 8795 ror r24
65 0044 9093 0000 sts (internal_tx_buffer)+1,r25
66 0048 8093 0000 sts internal_tx_buffer,r24
67 .LM10:
68 004c 8091 0000 lds r24,bits_left_in_tx
69 0050 8150 subi r24,lo8(-(-1))
70 0052 8093 0000 sts bits_left_in_tx,r24
71 0056 8091 0000 lds r24,bits_left_in_tx
72 005a 8823 tst r24
73 005c 01F4 brne .L25
74 .LM11:
75 005e 1092 0000 sts flag_tx_ready,__zero_reg__
76 .L25:
77 0062 83E0 ldi r24,lo8(3)
78 .LVL2:
79 .L4:
80 .LM12:
81 0064 8093 0000 sts timer_tx_ctr,r24
82 .L2:
83 .LM13:
84 0068 8091 0000 lds r24,flag_rx_off
85 .LVL3:
86 006c 8823 tst r24
87 006e 01F0 breq .+2
88 0070 00C0 rjmp .L24
89 .LM14:
90 0072 8091 0000 lds r24,flag_rx_waiting_for_stop_bit.1380
91 0076 8823 tst r24
92 0078 01F0 breq .L13
93 .LM15:
94 007a 8091 0000 lds r24,timer_rx_ctr.1382
95 007e 8150 subi r24,lo8(-(-1))
96 0080 8093 0000 sts timer_rx_ctr.1382,r24
97 0084 8823 tst r24
98 0086 01F0 breq .+2
99 0088 00C0 rjmp .L24
100 .LM16:
101 008a 1092 0000 sts flag_rx_waiting_for_stop_bit.1380,__zero_reg__
102 .LM17:
103 008e 1092 0000 sts flag_rx_ready,__zero_reg__
104 .LM18:
105 0092 E091 0000 lds r30,qin
106 0096 FF27 clr r31
107 0098 8091 0000 lds r24,internal_rx_buffer.1384
108 009c E050 subi r30,lo8(-(inbuf))
109 009e F040 sbci r31,hi8(-(inbuf))
110 00a0 8083 st Z,r24
111 .LM19:
112 00a2 8091 0000 lds r24,qin
113 00a6 8F5F subi r24,lo8(-(1))
114 00a8 8093 0000 sts qin,r24
115 00ac 8091 0000 lds r24,qin
116 00b0 8032 cpi r24,lo8(32)
117 00b2 00F0 brlo .L24
118 .LM20:
119 00b4 1092 0000 sts qin,__zero_reg__
120 00b8 00C0 rjmp .L24
121 .L13:
122 .LM21:
123 00ba 8091 0000 lds r24,flag_rx_ready
124 00be 8823 tst r24
125 00c0 01F4 brne .L17
126 .LM22:
127 00c2 8699 sbic 48-0x20,6
128 00c4 00C0 rjmp .L24
129 .LM23:
130 00c6 81E0 ldi r24,lo8(1)
131 00c8 8093 0000 sts flag_rx_ready,r24
132 .LM24:
133 00cc 1092 0000 sts internal_rx_buffer.1384,__zero_reg__
134 .LM25:
135 00d0 94E0 ldi r25,lo8(4)
136 00d2 9093 0000 sts timer_rx_ctr.1382,r25
137 .LM26:
138 00d6 98E0 ldi r25,lo8(8)
139 00d8 9093 0000 sts bits_left_in_rx.1383,r25
140 .LM27:
141 00dc 8093 0000 sts rx_mask.1381,r24
142 00e0 00C0 rjmp .L24
143 .L17:
144 .LM28:
145 00e2 8091 0000 lds r24,timer_rx_ctr.1382
146 00e6 8150 subi r24,lo8(-(-1))
147 00e8 8093 0000 sts timer_rx_ctr.1382,r24
148 00ec 8823 tst r24
149 00ee 01F4 brne .L24
150 .LM29:
151 00f0 83E0 ldi r24,lo8(3)
152 00f2 8093 0000 sts timer_rx_ctr.1382,r24
153 .LM30:
154 00f6 869B sbis 48-0x20,6
155 00f8 00C0 rjmp .L21
156 .LM31:
157 00fa 8091 0000 lds r24,internal_rx_buffer.1384
158 00fe 9091 0000 lds r25,rx_mask.1381
159 0102 892B or r24,r25
160 0104 8093 0000 sts internal_rx_buffer.1384,r24
161 .L21:
162 .LM32:
163 0108 8091 0000 lds r24,rx_mask.1381
164 010c 880F lsl r24
165 010e 8093 0000 sts rx_mask.1381,r24
166 .LM33:
167 0112 8091 0000 lds r24,bits_left_in_rx.1383
168 0116 8150 subi r24,lo8(-(-1))
169 0118 8093 0000 sts bits_left_in_rx.1383,r24
170 011c 8823 tst r24
171 011e 01F4 brne .L24
172 .LM34:
173 0120 81E0 ldi r24,lo8(1)
174 0122 8093 0000 sts flag_rx_waiting_for_stop_bit.1380,r24
175 .L24:
176 /* epilogue: frame size=0 */
177 0126 FF91 pop r31
178 0128 EF91 pop r30
179 012a 9F91 pop r25
180 012c 8F91 pop r24
181 012e 0F90 pop __tmp_reg__
182 0130 0FBE out __SREG__,__tmp_reg__
183 0132 0F90 pop __tmp_reg__
184 0134 1F90 pop __zero_reg__
185 0136 1895 reti
186 /* epilogue end (size=9) */
187 /* function __vector_9 size 157 (139) */
188 .LFE2:
190 .global softuart_init
192 softuart_init:
193 .LFB5:
194 .LM35:
195 /* prologue: frame size=0 */
196 /* prologue end (size=0) */
197 .LM36:
198 0138 1092 0000 sts flag_tx_ready,__zero_reg__
199 .LM37:
200 013c 1092 0000 sts flag_rx_ready,__zero_reg__
201 .LM38:
202 0140 1092 0000 sts flag_rx_off,__zero_reg__
203 .LM39:
204 0144 979A sbi 50-0x20,7
205 .LBB6:
206 .LBB7:
207 .LM40:
208 0146 8F9A sbi 49-0x20,7
209 .LM41:
210 0148 8E98 cbi 49-0x20,6
211 .LBE7:
212 .LBE6:
213 .LBB8:
214 .LBB9:
215 .LM42:
216 014a 9FB7 in r25,95-0x20
217 .LVL4:
218 .LM43:
219 /* #APP */
220 014c F894 cli
221 .LM44:
222 /* #NOAPP */
223 014e 82E0 ldi r24,lo8(2)
224 0150 83BF out 83-0x20,r24
225 .LM45:
226 0152 89B7 in r24,89-0x20
227 0154 8160 ori r24,lo8(1)
228 0156 89BF out 89-0x20,r24
229 .LM46:
230 0158 12BE out 82-0x20,__zero_reg__
231 .LM47:
232 015a 9FBF out 95-0x20,r25
233 .LBE9:
234 .LBE8:
235 /* epilogue: frame size=0 */
236 015c 0895 ret
237 /* epilogue end (size=1) */
238 /* function softuart_init size 20 (19) */
239 .LFE5:
241 .global softuart_turn_rx_on
243 softuart_turn_rx_on:
244 .LFB7:
245 .LM48:
246 /* prologue: frame size=0 */
247 /* prologue end (size=0) */
248 .LM49:
249 015e 1092 0000 sts flag_rx_off,__zero_reg__
250 /* epilogue: frame size=0 */
251 0162 0895 ret
252 /* epilogue end (size=1) */
253 /* function softuart_turn_rx_on size 3 (2) */
254 .LFE7:
256 .global softuart_turn_rx_off
258 softuart_turn_rx_off:
259 .LFB8:
260 .LM50:
261 /* prologue: frame size=0 */
262 /* prologue end (size=0) */
263 .LM51:
264 0164 81E0 ldi r24,lo8(1)
265 0166 8093 0000 sts flag_rx_off,r24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -