0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用汇编语言实现多字节BCD码加法减法的详细介绍

Wildesbeast 来源:网络整理 作者:佚名 2020-12-06 17:31 次阅读

(1) 标号: BCDA 功能:多字节BCD码加法

给大家介绍一个单片机汇编语言写的多字节BCD码加法减法子程序

入口条件:字节数在R7中,被加数在[R0]中,加数在[R1]中。

出口信息:和在[R0]中,最高位进位在CY中。

影响资源:PSW、A、R2 堆栈需求: 2字节

BCDA: MOV A,R7 ;取字节数至R2中

MOV R2,A

ADD A,R0 ;初始化数据指针

MOV R0,A

MOV A,R2

ADD A,R1

MOV R1,A

CLR C

BCD1: DEC R0 ;调整数据指针

DEC R1

MOV A,@R0

ADDC A,@R1 ;按字节相加

DA A ;十进制调整

MOV @R0,A ;和存回[R0]中

DJNZ R2,BCD1 ;处理完所有字节

RET

汇编语言多字节BCD码加法减法

(2) 标号: BCDB 功能:多字节BCD码减法

入口条件:字节数在R7中,被减数在[R0]中,减数在[R1]中。

出口信息:差在[R0]中,最高位借位在CY中。

影响资源:PSW、A、R2、R3 堆栈需求: 6字节

BCDB: LCALL NEG1 ;减数[R1]十进制取补

LCALL BCDA ;按多字节BCD码加法处理

CPL C ;将补码加法的进位标志转换成借位标志

MOV F0,C ;保护借位标志

LCALL NEG1 ;恢复减数[R1]的原始值

MOV C,F0 ;恢复借位标志

RET

NEG1: MOV A,R0 ;[R1]十进制取补子程序入口

XCH A,R1 ;交换指针

XCH A,R0

LCALL NEG ;通过[R0]实现[R1]取补

MOV A,R0

XCH A,R1 ;换回指针

XCH A,R0

RET

(3) 标号: NEG 功能:多字节BCD码取补

汇编语言多字节BCD码加法减法

入口条件:字节数在R7中,操作数在[R0]中。

出口信息:结果仍在[R0]中。

影响资源:PSW、A、R2、R3 堆栈需求: 2字节

NEG: MOV A,R7 ;取(字节数减一)至R2中

DEC A

MOV R2,A

MOV A,R0 ;保护指针

MOV R3,A

NEG0: CLR C

MOV A,#99H

SUBB A,@R0 ;按字节十进制取补

MOV @R0,A ;存回[R0]中

INC R0 ;调整数据指针

DJNZ R2,NEG0 ;处理完(R2)字节

MOV A,#9AH ;最低字节单独取补

SUBB A,@R0

MOV @R0,A

MOV A,R3 ;恢复指针

MOV R0,A

RET

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • BCD
    BCD
    +关注

    关注

    1

    文章

    82

    浏览量

    29275
  • 汇编语言
    +关注

    关注

    14

    文章

    404

    浏览量

    35187
  • 指针
    +关注

    关注

    1

    文章

    469

    浏览量

    70360
收藏 人收藏

    评论

    相关推荐

    汇编语言实

    ;nbsp;  汇编语言程序设计实验………………………………….14实验五    软中断程序设计……………………………….16部分章节习题参考答案汇编语言实验指导书
    发表于 09-29 13:56

    有人能给我用汇编讲解讲解BCD多位半字节乘法或者多字节...

    有人能给我用汇编讲解讲解BCD多位半字节乘法或者多字节乘法
    发表于 07-27 16:52

    请问怎么在DSP上用汇编语言实现复数滤波?

    如题,我用的DSP开发板是TMSC5535,需要用到Hibert滤波,需要用汇编语言实现,但是滤波器的系数是复数,请问汇编语言要怎么实现?(汇编语言实数滤波我已经会了),谢谢!
    发表于 07-31 07:24

    基于汇编语言实现最简单的LED灯闪烁

    汇编实现LED灯闪1. 本文目的基于汇编语言实现最简单的LED灯闪烁。汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级
    发表于 10-27 07:34

    使用汇编语言的地方有哪些

    对资深单片机开发人员来说经常提倡的一个开发技巧是,开发人员应避免使用汇编语言。避免使用汇编语言的原因是它特定于所使用的处理器体系结构,难以阅读,理解和维护。而且需要注意的是,在查看仍可以使用汇编语言
    发表于 12-01 06:33

    如何用汇编语言实现单片机与电脑之间的通信呢

    本文主要介绍STM32串口通信的基本原理,并用汇编语言实现单片机与电脑之间的通信
    发表于 02-15 06:57

    用汇编语言实现BCH解码校验算法

    介绍数据传输中BCH 解码校验用汇编语言实现的算法。算法包含BCH 码的差错检验、差错位查找和差错纠正, 同时列出相关主要子程序清单并予说明。
    发表于 04-16 10:41 24次下载

    用汇编语言实现智能芯片SHT15对温湿度的测量

    针对新型智能传感器硬件简单、软件复杂的实际情况,本文探讨了如何用汇编语言实现智能芯片SHT15对温/湿度的测量。文中给出了详细的测量程序流程图,这对智能传感器的使用及
    发表于 09-14 14:49 52次下载

    单片机多字节BCD码加法减法

    (1) 标号: BCDA 功能:多字节BCD码加法入口条件:字节
    发表于 04-17 21:05 4182次阅读

    多字节BCD加法

    多字节BCD加法 入口条件:字节数在R7中,被加数在[R0]中,加数在[R1]中。出口信息:和在[R0]中,最高位进位在CY中。影响资源:PSW
    发表于 01-19 22:41 1977次阅读

    多字节BCD减法汇编语言程序

    多字节BCD减法汇编语言程序 入口条件:字节数在R7中,被减数在[R0]中,减数在[R1]中。出口信
    发表于 01-19 22:42 2480次阅读

    微机原理多字节加法介绍

    多字节加法 三个带符号数比较以及求一个数的补码的程序编写
    发表于 11-24 14:54 0次下载

    51单片机中汇编多字节24位二进制转BCD码的实例说明

    本文档的主要内容详细介绍的是51单片机中汇编多字节24位二进制转bcd码的实例说明。
    发表于 07-10 17:40 8次下载
    51单片机中<b class='flag-5'>汇编</b><b class='flag-5'>多字节</b>24位二进制转<b class='flag-5'>BCD</b>码的实例说明

    汇编实现多字节乘除法

    汇编实现多字节乘除法乘法单片机的乘法本质是二进制的乘法,而乘法本身是通过加法实现的。多字节的乘法
    发表于 11-15 17:21 18次下载
    <b class='flag-5'>汇编</b><b class='flag-5'>实现</b><b class='flag-5'>多字节</b>乘除法

    STM32汇编语言之串口通信

    本文主要介绍STM32串口通信的基本原理,并用汇编语言实现单片机与电脑之间的通信
    发表于 12-16 16:58 13次下载
    STM32<b class='flag-5'>汇编语言</b>之串口通信