(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
ETHERCAT转ETHERCAT协议网关
荣耀V9改个名国外居然卖这么贵?
基于微波技术的固体废弃物处理系统
世界电气公司的排名情况
可商用多语言聊天LLM开源,性能直逼GPT-4
使用汇编语言实现多字节BCD码加法减法的详细介绍
三星“野兽模式”曝光 Galaxy S8性能或暴增
智慧公安全网舆情监控平台搭建情报分析系统开发
浅谈mqtt协议与ADW300无线计量仪表结合
首个商用区块链保险验证解决方案
70.39% 用户办理 “携号转网”遇到一定困难及阻碍
定时任务cron的教学
Dialog音频编解码器产品组合
美国研究团队在44公里的距离内实现了保真度大于90%的量子隐形传态
一起来看一下蓝牙版本到现在都经历了哪些变化
2017中国新能源汽车产业迎来转折期 技术和商业全面竞争
如何使用直接标定法准确测试相噪?
关于机械设备维持式防晃电接触器的提议
为满足智能电视应用 MIPS祭六核心处理器IP
人脸识别技术的发展及应用领域