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

📄 32open_uadri.txt

📁 在8位单片机中对32位数进行开方运算的汇编子程序
💻 TXT
字号:
32位整型数开平方
;input r15:r14:r13:r12 (it make a copy from r3::r0)
;output r25:r24
;use r20,r21,r22,r26,r28

;输入返回数据:lsqrt(0x5300164) = 0x2471
;对应于8M晶振时开方所用时间为 48.38us
;原程序提供者:Jens NL,Email:jensnl@home.com

.include "8515def.inc"

        .org 0x00
         rjmp    reset
        .org 0x20
         reset:
         ldi     r16,0x02      ; Stack Pointer Setup 
         out     SPH,r16       ; Stack Pointer High Byte 
         ldi     r16,0x5F      ; Stack Pointer Setup 
         out     SPL,r16       ; Stack Pointer Low Byte
; 验证 
;test r25:r24 = lsqrt(0x5300164)
 loopm:
         ldi     r16,0x64
         mov     r12,r16
         ldi     r16,0x01
         mov     r13,r16
         ldi     r16,0x30
         mov     r14,r16
         ldi     r16,0x05
         mov     r15,r16
         rcall   lsqrt
         nop
         rjmp    loopm
         
 lsqrt:
         clr     r20
         clr     r21
         clr     r22
         clr     r24
         clr     r25
         clr     r26
         ldi     r28,16
  m03:
         rol     r15
         rol     r20
         rol     r21
         rol     r22
         rol     r15
         rol     r20
         rol     r21
         rol     r22
         
         lsl     r24
         rol     r25
         rol     r26
         
         cp      r24,r20
         cpc     r25,r21
         cpc     r26,r22
         brsh    m01
         sbc     r20,r24
         sbc     r21,r25
         sbc     r22,r26
         subi    r24,-2
   m05:
   m01:
         dec     r28
         sbrs    r28,0
         sbrc    r28,1
         rjmp    m03
         breq    m08
         mov     r15,r14
         mov     r14,r13
         mov     r13,r12
         rjmp    m03
   m08:
         lsr     r26
         ror     r25
         ror     r24
         ret

⌨️ 快捷键说明

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