⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 AVR单片机RS232通信接口应用设计
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0266 2990              ld R2,y+
 0268 1990              ld R1,y+
 026A 0990              ld R0,y+
 026C                   .dbline 0 ; func end
 026C 1895              reti
 026E                   .dbsym l temp2 1 i
 026E                   .dbsym l temp1 1 i
 026E                   .dbend
 026E                   .dbfunc e swRoot _swRoot fi
 026E           ;             ii -> R10
 026E           ;   dwSquareRoot -> y+0
 026E           ;       dwNumber -> y+10
                        .even
 026E           _swRoot::
 026E 0E940000          xcall push_arg4
 0272 0E940000          xcall push_gset3
 0276 2497              sbiw R28,4
 0278                   .dbline -1
 0278                   .dbline 122
 0278           ; 
 0278           ; //***************************************************************
 0278           ; // Function    : swRoot                                
 0278           ; // Input       : dwNumber                                            
 0278           ; // Output      : Square Root of input                                            
 0278           ; // Description : Square Root Calculate                               
 0278           ; //***************************************************************
 0278           ; INT16U swRoot(INT32U dwNumber)
 0278           ; {
 0278                   .dbline 126
 0278           ;       INT8U ii;
 0278           ;     INT32U dwSquareRoot;
 0278           ;     
 0278           ;     if(dwNumber == 0)
 0278 40E0              ldi R20,0
 027A 50E0              ldi R21,0
 027C 60E0              ldi R22,0
 027E 70E0              ldi R23,0
 0280 FE01              movw R30,R28
 0282 2284              ldd R2,z+10
 0284 3384              ldd R3,z+11
 0286 4484              ldd R4,z+12
 0288 5584              ldd R5,z+13
 028A 2416              cp R2,R20
 028C 3506              cpc R3,R21
 028E 4606              cpc R4,R22
 0290 5706              cpc R5,R23
 0292 19F4              brne L16
 0294                   .dbline 127
 0294           ;     {
 0294                   .dbline 128
 0294           ;       return (0);
 0294 0027              clr R16
 0296 1127              clr R17
 0298 9CC0              xjmp L15
 029A           L16:
 029A                   .dbline 130
 029A           ;     }
 029A           ;     if(dwNumber <= 4194304)
 029A 40E0              ldi R20,0
 029C 50E0              ldi R21,0
 029E 60E4              ldi R22,64
 02A0 70E0              ldi R23,0
 02A2 FE01              movw R30,R28
 02A4 2284              ldd R2,z+10
 02A6 3384              ldd R3,z+11
 02A8 4484              ldd R4,z+12
 02AA 5584              ldd R5,z+13
 02AC 4215              cp R20,R2
 02AE 5305              cpc R21,R3
 02B0 6405              cpc R22,R4
 02B2 7505              cpc R23,R5
 02B4 E0F0              brlo L18
 02B6                   .dbline 131
 02B6           ;     {
 02B6                   .dbline 132
 02B6           ;       dwSquareRoot = dwNumber / 1024 + 63;
 02B6 8AE0              ldi R24,10
 02B8 90E0              ldi R25,0
 02BA FE01              movw R30,R28
 02BC 2284              ldd R2,z+10
 02BE 3384              ldd R3,z+11
 02C0 4484              ldd R4,z+12
 02C2 5584              ldd R5,z+13
 02C4 8A93              st -y,R24
 02C6 8101              movw R16,R2
 02C8 9201              movw R18,R4
 02CA 0E940000          xcall lsr32
 02CE 1801              movw R2,R16
 02D0 2901              movw R4,R18
 02D2 4FE3              ldi R20,63
 02D4 50E0              ldi R21,0
 02D6 60E0              ldi R22,0
 02D8 70E0              ldi R23,0
 02DA 240E              add R2,R20
 02DC 351E              adc R3,R21
 02DE 461E              adc R4,R22
 02E0 571E              adc R5,R23
 02E2 FE01              movw R30,R28
 02E4 2082              std z+0,R2
 02E6 3182              std z+1,R3
 02E8 4282              std z+2,R4
 02EA 5382              std z+3,R5
 02EC                   .dbline 133
 02EC           ;     }
 02EC 45C0              xjmp L19
 02EE           L18:
 02EE                   .dbline 134
 02EE           ;     else if(dwNumber <= 134217728)
 02EE 40E0              ldi R20,0
 02F0 50E0              ldi R21,0
 02F2 60E0              ldi R22,0
 02F4 78E0              ldi R23,8
 02F6 FE01              movw R30,R28
 02F8 2284              ldd R2,z+10
 02FA 3384              ldd R3,z+11
 02FC 4484              ldd R4,z+12
 02FE 5584              ldd R5,z+13
 0300 4215              cp R20,R2
 0302 5305              cpc R21,R3
 0304 6405              cpc R22,R4
 0306 7505              cpc R23,R5
 0308 E0F0              brlo L20
 030A                   .dbline 135
 030A           ;     {
 030A                   .dbline 136
 030A           ;       dwSquareRoot = dwNumber / 4096 + 255;
 030A 8CE0              ldi R24,12
 030C 90E0              ldi R25,0
 030E FE01              movw R30,R28
 0310 2284              ldd R2,z+10
 0312 3384              ldd R3,z+11
 0314 4484              ldd R4,z+12
 0316 5584              ldd R5,z+13
 0318 8A93              st -y,R24
 031A 8101              movw R16,R2
 031C 9201              movw R18,R4
 031E 0E940000          xcall lsr32
 0322 1801              movw R2,R16
 0324 2901              movw R4,R18
 0326 4FEF              ldi R20,255
 0328 50E0              ldi R21,0
 032A 60E0              ldi R22,0
 032C 70E0              ldi R23,0
 032E 240E              add R2,R20
 0330 351E              adc R3,R21
 0332 461E              adc R4,R22
 0334 571E              adc R5,R23
 0336 FE01              movw R30,R28
 0338 2082              std z+0,R2
 033A 3182              std z+1,R3
 033C 4282              std z+2,R4
 033E 5382              std z+3,R5
 0340                   .dbline 137
 0340           ;     }
 0340 1BC0              xjmp L21
 0342           L20:
 0342                   .dbline 139
 0342           ;     else
 0342           ;     {
 0342                   .dbline 140
 0342           ;       dwSquareRoot = dwNumber / 16384 + 1023;
 0342 8EE0              ldi R24,14
 0344 90E0              ldi R25,0
 0346 FE01              movw R30,R28
 0348 2284              ldd R2,z+10
 034A 3384              ldd R3,z+11
 034C 4484              ldd R4,z+12
 034E 5584              ldd R5,z+13
 0350 8A93              st -y,R24
 0352 8101              movw R16,R2
 0354 9201              movw R18,R4
 0356 0E940000          xcall lsr32
 035A 1801              movw R2,R16
 035C 2901              movw R4,R18
 035E 4FEF              ldi R20,255
 0360 53E0              ldi R21,3
 0362 60E0              ldi R22,0
 0364 70E0              ldi R23,0
 0366 240E              add R2,R20
 0368 351E              adc R3,R21
 036A 461E              adc R4,R22
 036C 571E              adc R5,R23
 036E FE01              movw R30,R28
 0370 2082              std z+0,R2
 0372 3182              std z+1,R3
 0374 4282              std z+2,R4
 0376 5382              std z+3,R5
 0378                   .dbline 141
 0378           ;     }
 0378           L21:
 0378           L19:
 0378                   .dbline 142
 0378           ;     for (ii = 0;ii < 5;ii++)
 0378 AA24              clr R10
 037A 25C0              xjmp L25
 037C           L22:
 037C                   .dbline 143
 037C                   .dbline 144
 037C FE01              movw R30,R28
 037E 2080              ldd R2,z+0
 0380 3180              ldd R3,z+1
 0382 4280              ldd R4,z+2
 0384 5380              ldd R5,z+3
 0386 FE01              movw R30,R28
 0388 6284              ldd R6,z+10
 038A 7384              ldd R7,z+11
 038C 8484              ldd R8,z+12
 038E 9584              ldd R9,z+13
 0390 5A92              st -y,R5
 0392 4A92              st -y,R4
 0394 3A92              st -y,R3
 0396 2A92              st -y,R2
 0398 8301              movw R16,R6
 039A 9401              movw R18,R8
 039C 0E940000          xcall div32u
 03A0 FE01              movw R30,R28
 03A2 2080              ldd R2,z+0
 03A4 3180              ldd R3,z+1
 03A6 4280              ldd R4,z+2
 03A8 5380              ldd R5,z+3
 03AA 200E              add R2,R16
 03AC 311E              adc R3,R17
 03AE 421E              adc R4,R18
 03B0 531E              adc R5,R19
 03B2 5694              lsr R5
 03B4 4794              ror R4
 03B6 3794              ror R3
 03B8 2794              ror R2
 03BA FE01              movw R30,R28
 03BC 2082              std z+0,R2
 03BE 3182              std z+1,R3
 03C0 4282              std z+2,R4
 03C2 5382              std z+3,R5
 03C4                   .dbline 145
 03C4           L23:
 03C4                   .dbline 142
 03C4 A394              inc R10
 03C6           L25:
 03C6                   .dbline 142
 03C6 8A2D              mov R24,R10
 03C8 8530              cpi R24,5
 03CA C0F2              brlo L22
 03CC                   .dbline 146
 03CC           ;       {
 03CC           ;               dwSquareRoot = (dwSquareRoot + dwNumber / dwSquareRoot) / 2;
 03CC           ;       }
 03CC           ;     return((INT16U)dwSquareRoot);
 03CC FE01              movw R30,R28
 03CE 0081              ldd R16,z+0
 03D0 1181              ldd R17,z+1
 03D2                   .dbline -2
 03D2           L15:
 03D2 2496              adiw R28,4
 03D4 0E940000          xcall pop_gset3
 03D8 2496              adiw R28,4
 03DA                   .dbline 0 ; func end
 03DA 0895              ret
 03DC                   .dbsym r ii 10 c
 03DC                   .dbsym l dwSquareRoot 0 l
 03DC                   .dbsym l dwNumber 10 l
 03DC                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -