📄 训练项目十三:基于dds芯片ad9851的信号源.lst
字号:
149 5147 SUBI R20,0x17
14A 0F00 LSL R16
14B 1F11 ROL R17
14C 1F22 ROL R18
14D 1F33 ROL R19
14E 954A DEC R20
14F F7D1 BNE 0x014A
150 C005 RJMP 0x0156
151 E73F LDI R19,0x7F
152 2F23 MOV R18,R19
153 2F13 MOV R17,R19
154 2F03 MOV R16,R19
155 C004 RJMP 0x015A
156 2366 TST R22
157 F011 BEQ 0x015A
158 940E 0129 CALL neg32
15A 9169 LD R22,Y+
15B 9159 LD R21,Y+
15C 9149 LD R20,Y+
15D 9508 RET
uint2fp:
15E 9468 BSET 6
15F C001 RJMP 0x0161
int2fp:
160 94E8 BCLR 6
161 2722 CLR R18
162 2733 CLR R19
163 F046 BRTS 0x016C
164 FD17 SBRC R17,7
165 9520 COM R18
166 FD17 SBRC R17,7
167 9530 COM R19
168 C003 RJMP 0x016C
ulong2fp:
169 9468 BSET 6
16A C001 RJMP 0x016C
long2fp:
16B 94E8 BCLR 6
16C 934A ST R20,-Y
16D 935A ST R21,-Y
16E 936A ST R22,-Y
16F E147 LDI R20,0x17
170 2766 CLR R22
171 2755 CLR R21
172 F02E BRTS 0x0178
173 2333 TST R19
174 F41A BPL 0x0178
175 940E 0129 CALL neg32
177 E860 LDI R22,0x80
178 940E 01A3 CALL normalize_and_pack
17A 9169 LD R22,Y+
17B 9159 LD R21,Y+
17C 9149 LD R20,Y+
17D 9508 RET
unpacks:
17E D00F RCALL unpacku
17F F029 BEQ 0x0185
180 2366 TST R22
181 F011 BEQ 0x0184
182 940E 0129 CALL neg32
184 9498 BCLR 1
185 9508 RET
tstR16_R19:
186 2300 TST R16
187 F429 BNE 0x018D
188 2311 TST R17
189 F419 BNE 0x018D
18A 2322 TST R18
18B F409 BNE 0x018D
18C 2333 TST R19
18D 9508 RET
unpacku:
18E DFF7 RCALL tstR16_R19
18F F079 BEQ 0x019F
190 2F63 MOV R22,R19
191 7860 ANDI R22,0x80
192 0F22 LSL R18
193 1F33 ROL R19
194 2F43 MOV R20,R19
195 E75F LDI R21,0x7F
196 1B45 SUB R20,R21
197 2755 CLR R21
198 4050 SBCI R21,0
199 9526 LSR R18
19A E830 LDI R19,0x80
19B 2B23 OR R18,R19
19C 2733 CLR R19
19D 9498 BCLR 1
19E 9508 RET
19F 2744 CLR R20
1A0 2755 CLR R21
1A1 2766 CLR R22
1A2 9508 RET
normalize_and_pack:
1A3 DFE2 RCALL tstR16_R19
1A4 F121 BEQ 0x01C9
1A5 939A ST R25,-Y
1A6 938A ST R24,-Y
1A7 E78E LDI R24,0x7E
1A8 E090 LDI R25,0
1A9 2333 TST R19
1AA F051 BEQ 0x01B5
1AB 9536 LSR R19
1AC 9527 ROR R18
1AD 9517 ROR R17
1AE 9507 ROR R16
1AF 1748 CP R20,R24
1B0 0759 CPC R21,R25
1B1 F4C4 BGE 0x01CA
1B2 5F4F SUBI R20,0xFF
1B3 4F5F SBCI R21,0xFF
1B4 CFF4 RJMP 0x01A9
1B5 9580 COM R24
1B6 9590 COM R25
1B7 9601 ADIW R24,1
1B8 2322 TST R18
1B9 F0AA BMI 0x01CF
1BA 0F00 LSL R16
1BB 1F11 ROL R17
1BC 1F22 ROL R18
1BD 1748 CP R20,R24
1BE 0759 CPC R21,R25
1BF F01C BLT 0x01C3
1C0 5041 SUBI R20,1
1C1 4050 SBCI R21,0
1C2 CFF5 RJMP 0x01B8
1C3 2700 CLR R16
1C4 2711 CLR R17
1C5 2722 CLR R18
1C6 2733 CLR R19
1C7 9189 LD R24,Y+
1C8 9199 LD R25,Y+
1C9 9508 RET
1CA 2733 CLR R19
1CB EF0F LDI R16,0xFF
1CC 2F10 MOV R17,R16
1CD E72F LDI R18,0x7F
1CE 2F32 MOV R19,R18
1CF 9189 LD R24,Y+
1D0 9199 LD R25,Y+
pack:
1D1 DFB4 RCALL tstR16_R19
1D2 F039 BEQ 0x01DA
1D3 5841 SUBI R20,0x81
1D4 4F5F SBCI R21,0xFF
1D5 2F34 MOV R19,R20
1D6 0F22 LSL R18
1D7 9536 LSR R19
1D8 9527 ROR R18
1D9 2B36 OR R19,R22
1DA 9508 RET
fpneg:
1DB DFAA RCALL tstR16_R19
1DC F021 BEQ 0x01E1
1DD 930F PUSH R16
1DE E800 LDI R16,0x80
1DF 2730 EOR R19,R16
1E0 910F POP R16
1E1 9508 RET
fpneg2:
1E2 DFF8 RCALL fpneg
1E3 933A ST R19,-Y
1E4 932A ST R18,-Y
1E5 931A ST R17,-Y
1E6 930A ST R16,-Y
1E7 9508 RET
saveR8toR25:
1E8 928A ST R8,-Y
1E9 929A ST R9,-Y
1EA 92AA ST R10,-Y
1EB 92BA ST R11,-Y
1EC 92CA ST R12,-Y
1ED 92DA ST R13,-Y
1EE 92EA ST R14,-Y
1EF 92FA ST R15,-Y
1F0 934A ST R20,-Y
1F1 935A ST R21,-Y
1F2 936A ST R22,-Y
1F3 937A ST R23,-Y
1F4 938A ST R24,-Y
1F5 939A ST R25,-Y
1F6 9508 RET
restoreR8toR25:
1F7 9199 LD R25,Y+
1F8 9189 LD R24,Y+
1F9 9179 LD R23,Y+
1FA 9169 LD R22,Y+
1FB 9159 LD R21,Y+
1FC 9149 LD R20,Y+
1FD 90F9 LD R15,Y+
1FE 90E9 LD R14,Y+
1FF 90D9 LD R13,Y+
200 90C9 LD R12,Y+
201 90B9 LD R11,Y+
202 90A9 LD R10,Y+
203 9099 LD R9,Y+
204 9089 LD R8,Y+
205 9508 RET
fpmule:
206 940E 01E8 CALL saveR8toR25
208 93AA ST R26,-Y
209 93BA ST R27,-Y
20A 940E 018E CALL unpacku
20C F1D1 BEQ 0x0247
20D 2EE6 MOV R14,R22
20E 2ED5 MOV R13,R21
20F 2EC4 MOV R12,R20
210 2EB3 MOV R11,R19
211 2EA2 MOV R10,R18
212 2E91 MOV R9,R17
213 2E80 MOV R8,R16
214 8100 LDD R16,Z+0
215 8111 LDD R17,Z+1
216 8122 LDD R18,Z+2
217 8133 LDD R19,Z+3
218 940E 018E CALL unpacku
21A F161 BEQ 0x0247
21B 256E EOR R22,R14
21C 0D4C ADD R20,R12
21D 1D5D ADC R21,R13
21E 3840 CPI R20,0x80
21F 0753 CPC R21,R19
220 F55C BGE 0x024C
221 3841 CPI R20,0x81
222 EF7F LDI R23,0xFF
223 0757 CPC R21,R23
224 F164 BLT 0x0251
225 9EA2 MUL R10,R18
226 2DB1 MOV R27,R1
227 2DA0 MOV R26,R0
228 9E91 MUL R9,R17
229 2D91 MOV R25,R1
22A 2D80 MOV R24,R0
22B 9EA0 MUL R10,R16
22C 0D80 ADD R24,R0
22D 1D91 ADC R25,R1
22E 1FA3 ADC R26,R19
22F 1FB3 ADC R27,R19
230 9E82 MUL R8,R18
231 0D80 ADD R24,R0
232 1D91 ADC R25,R1
233 1FA3 ADC R26,R19
234 1FB3 ADC R27,R19
235 9E92 MUL R9,R18
236 0D90 ADD R25,R0
237 1DA1 ADC R26,R1
238 1FB3 ADC R27,R19
239 9EA1 MUL R10,R17
23A 0D90 ADD R25,R0
23B 1DA1 ADC R26,R1
23C 1FB3 ADC R27,R19
23D 2F2B MOV R18,R27
23E 2F1A MOV R17,R26
23F 2F09 MOV R16,R25
240 0F88 LSL R24
241 1F00 ROL R16
242 1F11 ROL R17
243 1F22 ROL R18
244 1F33 ROL R19
245 940E 01A3 CALL normalize_and_pack
247 91B9 LD R27,Y+
248 91A9 LD R26,Y+
249 940E 01F7 CALL restoreR8toR25
24B 9508 RET
24C EF0F LDI R16,0xFF
24D 2F10 MOV R17,R16
24E E72F LDI R18,0x7F
24F E74F LDI R20,0x7F
250 CFF6 RJMP 0x0247
251 2700 CLR R16
252 2F10 MOV R17,R16
253 2F20 MOV R18,R16
254 2F30 MOV R19,R16
255 CFF1 RJMP 0x0247
fpmule2:
256 93FA ST R31,-Y
257 93EA ST R30,-Y
258 2FEC MOV R30,R28
259 2FFD MOV R31,R29
25A 9632 ADIW R30,2
25B 940E 0206 CALL fpmule
25D 91E9 LD R30,Y+
25E 91F9 LD R31,Y+
25F 9624 ADIW R28,4
260 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -