📄 mcp41010.lst
字号:
00113 1A48 SUB R4,R24
00114 0F00 LSL R16
00115 1F11 ROL R17
00116 1F22 ROL R18
00117 1F33 ROL R19
00118 944A DEC R4
00119 F7D1 BNE 0x0114
0011A C005 RJMP 0x0120
0011B E73F LDI R19,0x7F
0011C 2F23 MOV R18,R19
0011D 2F13 MOV R17,R19
0011E 2F03 MOV R16,R19
0011F C004 RJMP 0x0124
00120 2066 TST R6
00121 F011 BEQ 0x0124
00122 940E 00DA CALL neg32
00124 9189 LD R24,Y+
00125 9069 LD R6,Y+
00126 9059 LD R5,Y+
00127 9049 LD R4,Y+
00128 9508 RET
uint2fp:
00129 9468 BSET 6
0012A C001 RJMP 0x012C
int2fp:
0012B 94E8 BCLR 6
0012C 2722 CLR R18
0012D 2733 CLR R19
0012E F046 BRTS 0x0137
0012F FD17 SBRC R17,7
00130 9520 COM R18
00131 FD17 SBRC R17,7
00132 9530 COM R19
00133 C003 RJMP 0x0137
ulong2fp:
00134 9468 BSET 6
00135 C001 RJMP 0x0137
long2fp:
00136 94E8 BCLR 6
00137 924A ST -Y,R4
00138 925A ST -Y,R5
00139 926A ST -Y,R6
0013A 938A ST -Y,R24
0013B E187 LDI R24,0x17
0013C 2E48 MOV R4,R24
0013D 2455 CLR R5
0013E 2466 CLR R6
0013F F036 BRTS 0x0146
00140 2333 TST R19
00141 F422 BPL 0x0146
00142 940E 00DA CALL neg32
00144 E880 LDI R24,0x80
00145 2E68 MOV R6,R24
00146 940E 0210 CALL normalize_and_pack
00148 9189 LD R24,Y+
00149 9069 LD R6,Y+
0014A 9059 LD R5,Y+
0014B 9049 LD R4,Y+
0014C 9508 RET
fpdiv1:
0014D 93FA ST -Y,R31
0014E 93EA ST -Y,R30
0014F 81EA LDD R30,Y+2
00150 81FB LDD R31,Y+3
00151 D027 RCALL 0x0179
00152 91E9 LD R30,Y+
00153 91F9 LD R31,Y+
00154 9622 ADIW R28,2
00155 9508 RET
fpdiv2:
00156 93FA ST -Y,R31
00157 93EA ST -Y,R30
00158 2FEC MOV R30,R28
00159 2FFD MOV R31,R29
0015A 9632 ADIW R30,2
0015B D01D RCALL 0x0179
0015C 91E9 LD R30,Y+
0015D 91F9 LD R31,Y+
0015E 9624 ADIW R28,4
0015F 9508 RET
fpdiv1x:
00160 93FA ST -Y,R31
00161 93EA ST -Y,R30
00162 81EA LDD R30,Y+2
00163 81FB LDD R31,Y+3
00164 D014 RCALL 0x0179
00165 91E9 LD R30,Y+
00166 91F9 LD R31,Y+
00167 8339 STD Y+1,R19
00168 8328 ST Y,R18
00169 931A ST -Y,R17
0016A 930A ST -Y,R16
0016B 9508 RET
fpdiv2x:
0016C 93FA ST -Y,R31
0016D 93EA ST -Y,R30
0016E 2FEC MOV R30,R28
0016F 2FFD MOV R31,R29
00170 9632 ADIW R30,2
00171 D007 RCALL 0x0179
00172 91E9 LD R30,Y+
00173 91F9 LD R31,Y+
00174 833B STD Y+3,R19
00175 832A STD Y+2,R18
00176 8319 STD Y+1,R17
00177 8308 ST Y,R16
00178 9508 RET
00179 920A ST -Y,R0
0017A 921A ST -Y,R1
0017B 922A ST -Y,R2
0017C 923A ST -Y,R3
0017D 940E 0255 CALL saveFPRegs
0017F 933A ST -Y,R19
00180 932A ST -Y,R18
00181 931A ST -Y,R17
00182 930A ST -Y,R16
00183 8100 LD R16,Z
00184 8111 LDD R17,Z+1
00185 8122 LDD R18,Z+2
00186 8133 LDD R19,Z+3
00187 940E 01F7 CALL unpacku
00189 F409 BNE 0x018B
0018A C057 RJMP 0x01E2
0018B 2CE6 MOV R14,R6
0018C 2CD5 MOV R13,R5
0018D 2CC4 MOV R12,R4
0018E 2EB3 MOV R11,R19
0018F 2EA2 MOV R10,R18
00190 2E91 MOV R9,R17
00191 2E80 MOV R8,R16
00192 9109 LD R16,Y+
00193 9119 LD R17,Y+
00194 9129 LD R18,Y+
00195 9139 LD R19,Y+
00196 940E 01F7 CALL unpacku
00198 F1A1 BEQ 0x01CD
00199 246E EOR R6,R14
0019A 184C SUB R4,R12
0019B 085D SBC R5,R13
0019C E880 LDI R24,0x80
0019D 1648 CP R4,R24
0019E 0653 CPC R5,R19
0019F F00C BLT 0x01A1
001A0 C033 RJMP 0x01D4
001A1 E881 LDI R24,0x81
001A2 1648 CP R4,R24
001A3 EF8F LDI R24,0xFF
001A4 0658 CPC R5,R24
001A5 F40C BGE 0x01A7
001A6 C036 RJMP 0x01DD
001A7 E280 LDI R24,0x20
001A8 2433 CLR R3
001A9 2E23 MOV R2,R19
001AA 2E12 MOV R1,R18
001AB 2E01 MOV R0,R17
001AC 2F30 MOV R19,R16
001AD 2722 CLR R18
001AE 2711 CLR R17
001AF 2700 CLR R16
001B0 9426 LSR R2
001B1 9417 ROR R1
001B2 9407 ROR R0
001B3 9537 ROR R19
001B4 9527 ROR R18
001B5 0F00 LSL R16
001B6 1F11 ROL R17
001B7 1F22 ROL R18
001B8 1F33 ROL R19
001B9 1C00 ROL R0
001BA 1C11 ROL R1
001BB 1C22 ROL R2
001BC 1C33 ROL R3
001BD F028 BCS 0x01C3
001BE 1808 SUB R0,R8
001BF 0819 SBC R1,R9
001C0 082A SBC R2,R10
001C1 083B SBC R3,R11
001C2 C004 RJMP 0x01C7
001C3 0C08 ADD R0,R8
001C4 1C19 ADC R1,R9
001C5 1C2A ADC R2,R10
001C6 1C3B ADC R3,R11
001C7 F00A BMI 0x01C9
001C8 6001 ORI R16,1
001C9 958A DEC R24
001CA F751 BNE 0x01B5
001CB 940E 0210 CALL normalize_and_pack
001CD 940E 0264 CALL restoreFPRegs
001CF 9039 LD R3,Y+
001D0 9029 LD R2,Y+
001D1 9019 LD R1,Y+
001D2 9009 LD R0,Y+
001D3 9508 RET
001D4 EF0F LDI R16,0xFF
001D5 2F10 MOV R17,R16
001D6 E72F LDI R18,0x7F
001D7 E73F LDI R19,0x7F
001D8 2066 TST R6
001D9 F399 BEQ 0x01CD
001DA 940E 00DA CALL neg32
001DC CFF0 RJMP 0x01CD
001DD 2700 CLR R16
001DE 2F10 MOV R17,R16
001DF 2F20 MOV R18,R16
001E0 2F30 MOV R19,R16
001E1 CFEB RJMP 0x01CD
001E2 9109 LD R16,Y+
001E3 9119 LD R17,Y+
001E4 9129 LD R18,Y+
001E5 9139 LD R19,Y+
001E6 CFED RJMP 0x01D4
unpacks:
001E7 D00F RCALL unpacku
001E8 F029 BEQ 0x01EE
001E9 2066 TST R6
001EA F011 BEQ 0x01ED
001EB 940E 00DA CALL neg32
001ED 9498 BCLR 1
001EE 9508 RET
tstR16_R19:
001EF 2300 TST R16
001F0 F429 BNE 0x01F6
001F1 2311 TST R17
001F2 F419 BNE 0x01F6
001F3 2322 TST R18
001F4 F409 BNE 0x01F6
001F5 2333 TST R19
001F6 9508 RET
unpacku:
001F7 DFF7 RCALL tstR16_R19
001F8 F099 BEQ 0x020C
001F9 938A ST -Y,R24
001FA 2E63 MOV R6,R19
001FB E880 LDI R24,0x80
001FC 2268 AND R6,R24
001FD 0F22 LSL R18
001FE 1F33 ROL R19
001FF 2E43 MOV R4,R19
00200 E78F LDI R24,0x7F
00201 1A48 SUB R4,R24
00202 2455 CLR R5
00203 2788 CLR R24
00204 0A58 SBC R5,R24
00205 9526 LSR R18
00206 E830 LDI R19,0x80
00207 2B23 OR R18,R19
00208 2733 CLR R19
00209 9189 LD R24,Y+
0020A 9498 BCLR 1
0020B 9508 RET
0020C 2444 CLR R4
0020D 2455 CLR R5
0020E 2466 CLR R6
0020F 9508 RET
normalize_and_pack:
00210 DFDE RCALL tstR16_R19
00211 F409 BNE 0x0213
00212 9508 RET
00213 93AA ST -Y,R26
00214 93BA ST -Y,R27
00215 01D2 MOVW R26,R4
00216 939A ST -Y,R25
00217 938A ST -Y,R24
00218 E78E LDI R24,0x7E
00219 E090 LDI R25,0
0021A 2333 TST R19
0021B F049 BEQ 0x0225
0021C 9536 LSR R19
0021D 9527 ROR R18
0021E 9517 ROR R17
0021F 9507 ROR R16
00220 17A8 CP R26,R24
00221 07B9 CPC R27,R25
00222 F4CC BGE 0x023C
00223 9611 ADIW R26,1
00224 CFF5 RJMP 0x021A
00225 9580 COM R24
00226 9590 COM R25
00227 9601 ADIW R24,1
00228 2322 TST R18
00229 F0BA BMI 0x0241
0022A 0F00 LSL R16
0022B 1F11 ROL R17
0022C 1F22 ROL R18
0022D 17A8 CP R26,R24
0022E 07B9 CPC R27,R25
0022F F014 BLT 0x0232
00230 9711 SBIW R26,1
00231 CFF6 RJMP 0x0228
00232 2700 CLR R16
00233 2711 CLR R17
00234 2722 CLR R18
00235 2733 CLR R19
00236 9189 LD R24,Y+
00237 9199 LD R25,Y+
00238 012D MOVW R4,R26
00239 91B9 LD R27,Y+
0023A 91A9 LD R26,Y+
0023B 9508 RET
0023C 2733 CLR R19
0023D EF0F LDI R16,0xFF
0023E 2F10 MOV R17,R16
0023F E72F LDI R18,0x7F
00240 2F32 MOV R19,R18
00241 9189 LD R24,Y+
00242 9199 LD R25,Y+
00243 012D MOVW R4,R26
00244 C002 RJMP 0x0247
pack:
00245 93AA ST -Y,R26
00246 93BA ST -Y,R27
00247 DFA7 RCALL tstR16_R19
00248 F049 BEQ 0x0252
00249 01D2 MOVW R26,R4
0024A 58A1 SUBI R26,0x81
0024B 4FBF SBCI R27,0xFF
0024C 012D MOVW R4,R26
0024D 2D34 MOV R19,R4
0024E 0F22 LSL R18
0024F 9536 LSR R19
00250 9527 ROR R18
00251 2936 OR R19,R6
00252 91B9 LD R27,Y+
00253 91A9 LD R26,Y+
00254 9508 RET
saveFPRegs:
00255 924A ST -Y,R4
00256 925A ST -Y,R5
00257 926A ST -Y,R6
00258 927A ST -Y,R7
00259 928A ST -Y,R8
0025A 929A ST -Y,R9
0025B 92AA ST -Y,R10
0025C 92BA ST -Y,R11
0025D 92CA ST -Y,R12
0025E 92DA ST -Y,R13
0025F 92EA ST -Y,R14
00260 92FA ST -Y,R15
00261 938A ST -Y,R24
00262 939A ST -Y,R25
00263 9508 RET
restoreFPRegs:
00264 9199 LD R25,Y+
00265 9189 LD R24,Y+
00266 90F9 LD R15,Y+
00267 90E9 LD R14,Y+
00268 90D9 LD R13,Y+
00269 90C9 LD R12,Y+
0026A 90B9 LD R11,Y+
0026B 90A9 LD R10,Y+
0026C 9099 LD R9,Y+
0026D 9089 LD R8,Y+
0026E 9079 LD R7,Y+
0026F 9069 LD R6,Y+
00270 9059 LD R5,Y+
00271 9049 LD R4,Y+
00272 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -