BCD码加减法

mtttt 2010-04-15 12:35:15

4+7=11 3-5=-2
这两种情况该怎么处理

我是初学者,哪位大侠给点指点啊

就一位数的加减法....求汇编程序
...全文
643 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AlanBruce 2010-04-15
  • 打赏
  • 举报
回复
求汇编程序????


CSDN-CSDN社区-C/C++-C语言
异界工程师 2010-04-15
  • 打赏
  • 举报
回复
3-5=-2 用汇编如下:
MOV A,#03H ;(A)=03H
SUBB A,#05H ;(A)=-2H
应该是这样的了!
异界工程师 2010-04-15
  • 打赏
  • 举报
回复

4+7=11用汇编如下:

MOV A,#04H ;(A)=04H
MOV A,#07H ;(A)=0BH
DA A ;(A)+06H=11H;

3-5=-2 还没想到!你问问别人吧!


xabcxyz 2010-04-15
  • 打赏
  • 举报
回复
a db 4
b db 7
c db 3
d db 5

mov al, a
add al, b
daa ; al = 11h
mov al, c
sub al, d
das ; al = 98h 有借位 98h理解为两位十进制 2 的补码,计算机中负数补码表示

mtttt 2010-04-15
  • 打赏
  • 举报
回复
自己顶一下,求 汇编程序!
阿发伯 2010-04-15
  • 打赏
  • 举报
回复
前面说错了,是非压缩BCD一位数加法
阿发伯 2010-04-15
  • 打赏
  • 举报
回复
这样更符合题意:

char b1[2] = {4, 0};
char b2[2] = {7, 0};
char b[2];
short v = b1[0] + b2[0];
b[0] = v % 10;
b[1] = v / 10; // 结果在b中
soswaidao 2010-04-15
  • 打赏
  • 举报
回复
友情帮顶,友情帮顶
阿发伯 2010-04-15
  • 打赏
  • 举报
回复
一位数的BCD码加减不用汇编吧。
如4+7=11的压缩BCD代码:
char b[2] = {4, 7};
short v = b[0] + b[1];
b[0] = v % 10;
b[1] = v / 10;
bobo364 2010-04-15
  • 打赏
  • 举报
回复
貌似这帖,应该去汇编区

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧