RSS

PIC单片机应算子程序

来源: 作者: 时间:2007-01-05 Tag: 点击:


    BTFSC     STATUS,Z
    DECF     ACCBHI
    COMF     ACCBHI
CHEK_ABTFSC     ACCAHI,7    ;ACCA为负?
    CALL     NEG_A    ;ACCA为负,取补(NEG_A子程序请参见
            ;16×16位定点数乘法子程序NEG_A)
    RETURN        ;ACCA和ACCB均为负,返回
【校验举例1】 -23775÷(-240)=99.0625(十进制)
化为十六进制数:A321H÷FF10H;
结果:(商)0063H,(余数)000FH(十六进制)。
【校验举例2】 769÷3856=0.199429(十进制)
化为十六进制数:0301H÷0F10H;
结果:(商)0000H,(余数)0301H(十六进制)。
【例程】
MAIN    MOVLW    0X01    ;被除数0301H送ACCB
    MOVWF    ACCBLO
    MOVLW    0X03
    MOVWF    ACCBHI
    MOVLW    0X10    ;除数0F10H送ACCA
    MOVWF    ACCALO
    MOVLW    0X0F
    MOVWF    ACCAHI
    CALL    D_div    ;调用双字节除法子程序,求商
    END
 3  3字节浮点四则运算子程序
 3.1  浮点数加(减)法子程序
以下为浮点加(减)运算例程:

    LIST            p=16f877
    INCLUDE         p16f877.inc
    ACCALO         EQU     20        ;存放加数或减数的尾数
    ACCAHI         EQU    21
    EXPA        EQU     22        ;存放加数或减数阶码
    ACCBLO        EQU     23        ;存放被加数或被减数尾数以及和或差
    ACCBHI         EQU     24
    EXPB         EQU    25        ;存放被加数或被减数阶码
    ACCCLO        EQU     26        ;临时寄存器
    ACCCHI         EQU     27        ;临时寄存器
    ACCDLO        EQU     28        ;临时寄存器
    ACCDHI         EQU     29        ;临时寄存器
    TEMP         EQU     2A        ;临时寄存器
    TEMP1         EQU     30        ;临时寄存器
    TIMES         EQU     31        ;临时寄存器

    ORG             0X000
START    GOTO        MAIN
    ORG            0X0100
;**************浮点减法子程序****************
F_sub    CALL         NEG_A        ;求ACCA的补码,将减法转换为补码加法
;***********浮点加法子程序**************
F_add    CALL        SUBADJ        ;调子程序判断EXPB和EXPA的大小
    BTFSC         STATUS,Z    ;参与运算的两个数阶码相等?
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载