单片机实现十进制数减1的编程
答案:4 悬赏:20 手机版
解决时间 2021-03-18 04:18
- 提问者网友:wodetian
- 2021-03-17 12:29
已知累加器A中存放两位BCD码数,请编写程序实现十进制数减1。 (例如假设A里原来是50H的话,执行程序结束后,A应该变成49H)
最佳答案
- 五星知识达人网友:逐風
- 2021-03-17 13:32
51单片机的运算都是十六进制的,唯一的十进制调整指令DA A,也只能用在ADD/ADDC指令之后,所以要做十进制的减法运算,也必须转换为加法运算,然后再做十进制调整。十进制减1运算程序CLR CMOV A,#50H ADD A,#99H ;A=E9HDA A ;A=49H
全部回答
- 1楼网友:第四晚心情
- 2021-03-17 17:10
这个就是16进制转10进制。
看你的数据范围了。
只有一个字节的话,最简单就是 循环减10。
多字节的话,减起来就太慢了。
可以用位权来加。移位判断,是1就加,0不加,第0位加1,第1位加2,第3位4,这样。
- 2楼网友:轮獄道
- 2021-03-17 16:04
运行胲文件;利用脚本跟踪,扫描胲文件的指令目标,用VE修改后设放及可。
- 3楼网友:忘川信使
- 2021-03-17 14:44
MOV B,A
ANL A,#0FH
CLR C
SUBB A,#1
CJNE A,#0FH,LP
到这里如果程序还往下走,就证明低四位为0000
所以
MOV A,B
CLR C
SUBB A#10H
ADD A#9H
RET
LP:
ANL B,#0F0H
ORL A,B
RET
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯