单片机加法程序

单片机加法程序,第1张

1L的程序怎么看着都像是有问题。

要100以内的奇数相加,奇数就是1,3,5,7,9……99,一共50个数字,如果从1开始,那就是每次加2,重复49次到(2*49)+1=99,所以程序这样简单些:

ORG

0000H

CLR

A,

MOV

50H,

A

MOV

51H,

A

MOV

R2,

#01H

从1开始

MOV

R3,#49

重复49次

LOOP:

CLR

C

么次进行加法前先清除C,以免出问题

MOV

A,

R2

ADD

A,

51H

MOV

51H,

A

CLR

A

ADDC

A,

50H

MOV

50H,

A

INC

R2

INC

R2

DJNZ

R3,

LOOP

SJMP

$

END

上课不听讲,要打屁股……

0AEH + 81H + 01H = 130H,由于累加器A只有8位,所以超过8位的部分会被自动丢弃,因此结果A=30H。

基本计算你可以列竖式计算……跟十进制无本质不同……

最低位:E+1+1 = 10H,结果是0,进1

次高位:A+8+0+1 = 13H,结果是3,进1

所以加起来是130H。

十六进制基本计算要多练习,像十进制一样熟练……

你没描述你用的是什么单片机啊,如果是32位的单片机那就直接加很简单了,如果是8位51单片机的话那就是如下:

ORG 0000H

CLR C

MOV A,30H//被加数低八位

ADDC A,40H

MOV 50H,A//最低八位放于50H

MOV A,31H//被加数次低八位

ADDC A,41H

MOV 51H,A//次低八位放于51H

MOV A,32H//被加数次高八位

ADDC A,42H

MOV 52H,A//次高八位放于52H

MOV A,33H//被加数高八位

ADDC A,43H

MOV 53H,A//最高八位放于53H

MOV 54H,C

SJMP $

END

被加数放于30H开始的4个字节中,加数放于40H开始的4个连续字节,结果放在50H开始的五个字节


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10981776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存