dbsqr.asm

来自「微芯公司的PIC子程序库及运算平台」· 汇编 代码 · 共 43 行

ASM
43
字号
;********************DBSQR********************
;本程序实现单字节二进制数开平方。
;入口参数:原数据N在SOUH:SOU中。
;出口参数:结果在SOU中。
;占用资源:W,STATUS,024H,025H,028H,029H,一重堆栈。
;说明:     结果小于或等于真实值.

           IFNDEF       DBSQR1
            #DEFINE     DBSQR1

DBSQR       MOVLW       0F0H
            ANDWF       SOUH,W
            BTFSC       STATUS,Z
            GOTO        NEXT55
            MOVLW       10H
            SUBWF       SOUH,F      ;N-1000H
            MOVLW       81H
            MOVWF       TEMP1       ;n=64
            GOTO        NEXT56
NEXT55      MOVLW       1
            MOVWF       TEMP1
NEXT56      CLRF        TEMP2       ;TEMP2:TEMP1=2n+1
NEXT37      MOVF        TEMP1,W
            SUBWF       SOU,F       
            MOVF        TEMP2,W
            BTFSS       STATUS,C
            ADDLW       1
            SUBWF       SOUH,F      ;减法(2n+1)-N
            BTFSS       STATUS,C    
            GOTO        DONE11
            MOVLW       2
            ADDWF       TEMP1,F
            BTFSC       STATUS,C
            INCF        TEMP2,F
            GOTO        NEXT37
DONE11      BCF         STATUS,C
            RRF         TEMP2,W
            MOVWF       SOUH
            RRF         TEMP1,W
            MOVWF       SOU         ;SOUH:SOU=n
            RETLW       0
           ENDIF

⌨️ 快捷键说明

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