(1) 标号: bcda 功能:多字节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
(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码取补
入口条件:字节数在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
支撑智慧能源转型建设发展,国内首个省部级电力物联网实验室建成
从分层架构到微服务架构介绍(三)
iPhone11开始发货 与之前定好的9月20日发货日提前三天
锂电池CCD检测之涂布过程中缺陷尺寸厚度检测
直线电机模组在激光切割机上的作用
单片机多字节BCD码加法减法
小米“点胶门”背后的三宗罪
华为FreeBuds 4i无线耳机和Apple的新款AirTag开箱
印度中产家庭是智能家居在印度的推动者
如何让机器学习赋予人工智能更快的发展
汽车AI 2028年将达到138亿美元的规模
晶圆代工行业介绍
生命体征技术:基于状态的人体监测
为争取苹果订单?三星考虑分拆晶圆代工业务
今年曝光的iphone8,将会有什么特别和新功能呢?
那抹绿暖进心底,oppor9s清新绿正式发布,简直美到没朋友
STM32编程为何内部不应开DAC缓冲
香橙派Orange Pi RK3399解析
什么牌子的骨传导耳机好、市面上最好的骨传导耳机
工程如何进行参数选型