程序如下:
MOV R0,#21H ;起始地址.
MOV MAX,#0 ;先用0当做最大值
MOV R2,#20H ;数据长度
LOOP:
MOV A,@R0;取来一个数据
CLR C
SUBB A,MAX;减“最大值”
JC rel1 ;不够减就算了
MOV A,@R0;够减,就把这个数据
MOV MAX,A;当做最大值
rel1:
INC R0 ;转向下一个
DJNZ R2,LOOP ;循环
SJMP $ ;结束
END
最简单的办法是将大数当作字符串进行处理,也就是将大数用10进制字符数组进行表示,
然后模拟人们手工进行“竖式计算”的过程编写其加减乘除函数。但是这样做效率很低,
因为1024位的大数其10进制数字个数就有数百个,对于任何一种运算,都需要在两个有
数百个元素的数组空间上做多重循环,还需要许多额外的空间存放计算的进位退位标志
及中间结果。其优点是算法符合人们的日常习惯,易于理解。
C语言简介:
是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言特点:
1、C语言是一个有结构化程序设计、具有变量作用域递归功能的过程式语言。
2、C语言传递参数均是以值传递,另外也可以传递指针。
3、不同的变量类型可以用结构体组合在一起。
4、只有32个保留字,使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针,C语言可以容易的对存储器进行低级控制。
7、预编译处理让C语言的编译更具有弹性。
如果是小数减大数,进位C会被置1 ,使用JC rel 转到处理程序去就可以了
例如:
CLR C
SUBB A,#100
JC rel
RET
rel:A中的值 小于100的转到这里来处理
; 这里写上处理程序
RET
如果是小数减大数, 进位C会被置1 , 使用JC rel 转到处理程序去就可以了例如: CLR C SUBB A, #100 JC relRETrel: A中的值 小于100的转到这里来处理; 这里写上处理程序RET
单片机大数处理的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机大数处理