标题:
汇编语言排序求均值
[打印本页]
作者:
un51hei
时间:
2018-7-13 16:45
标题:
汇编语言排序求均值
利用汇编语言编程,对30H到39H的存储数据按大小排序,重新存储,并且去最大值和最小值后,求均值,存在40H
程序是在keilc V4上运行过,成功
单片机源程序如下:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV A,#98; 存储数据
MOV 30H,A;
MOV A,#77;
MOV 31H,A;
MOV A,#100;
MOV 32H,A;
MOV A,#56;
MOV 33H,A;
MOV A,#86;
MOV 34H,A;
MOV A,#73;
MOV 35H,A;
MOV A,#92;
MOV 36H,A;
MOV A,#25;
MOV 37H,A;
MOV A,#81;
MOV 38H,A;
MOV A,#48; 存储数据
MOV 39H,A;
; 从小到大排序
MOV R7, #09H ;设置外循环计数器
NEXT: MOV A, R7
MOV R5,A
;MOV 80H, A ;循环中的比较次数
MOV R6, A ;设置外循环计数器
MOV R0, #30H ;设置数据指针
COMP: MOV A, @R0
MOV R2, A
INC R0
CLR C
SUBB A, @R0
JC LESS
MOV A, R2
XCH A, @R0
DEC R0
MOV @R0, A
INC R0
LESS: DJNZ R6,COMP ;(R6)-1不等于0,转COMP继续内循环
MOV R0,#30H
;DEC 80H ; 循环中的比较次数
DEC R5;
MOV A,R5;
MOV R6,A
;MOV R6, 80h ; 在新的循环中,更新比较次数
DJNZ R7, COMP ;排序结束
;SJMP $
; END
LJMP AJUNZHI
AJUNZHI:MOV A,39H; ; 保存最大值
MOV 40H,A;
MOV A,30H; ; 保存最小值
MOV 41H,A;
;求平均值
MOV R7,#08H ;8个数据 ,除去最大数,最小数,求平均值
MOV R0,#31H ;首地址
MOV B,#08H ;求平均值
MOV R4,#00H ;和的进位清零
MOV R5,#00H ; 和清零
MOV R3,#03H ;右移次数,3次,求均值
CLR C ;C清零
CLR A ;A清零
QIUHE: MOV A,R5;
ADD A,@R0;
MOV R5,A;
MOV A,R4;
ADDC A,#00H;
MOV R4,A;
INC R0;
DJNZ R7,QIUHE;
JUNZHI: MOV A,R4;
RRC A;
MOV R4,A;
MOV A,R5;
RRC A;
MOV R5,A;
DJNZ R3,JUNZHI;右移三次,相当于除8,求平均值
MOV 43H,R5
SJMP $;
END;
复制代码
所有资料51hei提供下载:
thurs-test.zip
(16.46 KB, 下载次数: 12)
2018-7-13 16:41 上传
点击文件名下载附件
整个项目
下载积分: 黑币 -5
作者:
un51hei
时间:
2018-7-13 16:46
自己在学习单片机汇编时写得一个程序
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1