找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2303|回复: 1
打印 上一主题 下一主题
收起左侧

汇编语言排序求均值

[复制链接]
跳转到指定楼层
楼主
ID:301181 发表于 2018-7-13 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
利用汇编语言编程,对30H到39H的存储数据按大小排序,重新存储,并且去最大值和最小值后,求均值,存在40H
程序是在keilc V4上运行过,成功

单片机源程序如下:
  1.                                                      
  2.                 ORG  0000H
  3.            LJMP  MAIN
  4.             ORG  0100H               
  5. MAIN:   MOV  A,#98;         存储数据
  6.         MOV  30H,A;
  7.         MOV  A,#77;
  8.                 MOV  31H,A;
  9.                 MOV  A,#100;
  10.                 MOV  32H,A;
  11.                 MOV  A,#56;
  12.                 MOV  33H,A;
  13.                 MOV  A,#86;
  14.                 MOV  34H,A;
  15.                 MOV  A,#73;
  16.                 MOV  35H,A;
  17.                 MOV  A,#92;
  18.                 MOV  36H,A;
  19.                 MOV  A,#25;
  20.                 MOV  37H,A;
  21.                 MOV  A,#81;
  22.                 MOV  38H,A;
  23.                 MOV  A,#48;     存储数据
  24.                 MOV  39H,A;
  25.       ;          从小到大排序                          
  26.                 MOV         R7,  #09H          ;设置外循环计数器
  27. NEXT:         MOV  A,   R7
  28.         MOV  R5,A
  29.                 ;MOV  80H,  A           ;循环中的比较次数
  30.                 MOV  R6,   A           ;设置外循环计数器
  31.                 MOV  R0,  #30H         ;设置数据指针
  32. COMP:        MOV  A,  @R0
  33.             MOV  R2,  A
  34.             INC          R0
  35.             CLR        C
  36.             SUBB  A,  @R0
  37.             JC        LESS
  38.             MOV        A,  R2
  39.             XCH        A,  @R0
  40.         DEC          R0
  41.             MOV        @R0,  A
  42.             INC          R0
  43. LESS:        DJNZ        R6,COMP           ;(R6)-1不等于0,转COMP继续内循环
  44.         MOV        R0,#30H       
  45.             ;DEC         80H                                   ;  循环中的比较次数
  46.                  DEC  R5;
  47.                  MOV  A,R5;
  48.                  MOV  R6,A
  49.         ;MOV    R6,  80h                           ;   在新的循环中,更新比较次数
  50.             DJNZ        R7,   COMP                   ;排序结束
  51.                    ;SJMP  $
  52.                   ; END
  53.                
  54.                
  55.                                          
  56.                 LJMP    AJUNZHI
  57. AJUNZHI:MOV  A,39H;                                   ; 保存最大值
  58.                 MOV  40H,A;
  59.                 MOV  A,30H;                                        ; 保存最小值
  60.                 MOV  41H,A;
  61.           
  62.                  ;求平均值
  63.                  MOV  R7,#08H   ;8个数据          ,除去最大数,最小数,求平均值
  64.         MOV  R0,#31H   ;首地址
  65.                 MOV  B,#08H    ;求平均值
  66.                 MOV  R4,#00H   ;和的进位清零
  67.                 MOV  R5,#00H   ; 和清零
  68.                 MOV  R3,#03H   ;右移次数,3次,求均值
  69.                 CLR  C                   ;C清零
  70.                 CLR  A                   ;A清零
  71. QIUHE:  MOV  A,R5;
  72.         ADD  A,@R0;
  73.         MOV  R5,A;
  74.                 MOV  A,R4;
  75.            ADDC  A,#00H;
  76.             MOV  R4,A;
  77.         INC  R0;
  78.            DJNZ  R7,QIUHE;
  79. JUNZHI: MOV  A,R4;
  80.         RRC  A;
  81.                 MOV  R4,A;
  82.                 MOV  A,R5;
  83.                 RRC  A;
  84.                 MOV  R5,A;
  85.            DJNZ  R3,JUNZHI;右移三次,相当于除8,求平均值
  86.         MOV  43H,R5
  87.            SJMP  $;
  88.            END;
  89.                                  
复制代码

所有资料51hei提供下载:
thurs-test.zip (16.46 KB, 下载次数: 12)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:301181 发表于 2018-7-13 16:46 | 只看该作者
自己在学习单片机汇编时写得一个程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表