• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

hateve

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

MCS-51单片机程序求极值

    ORG 0000H

    LJMP MAIN

    ORG 0100H

MAIN:  MOV DPTR,#地址  ;存储数据的起始地址

       MOV R2,#num-1   ;对num个数求极值

    MOV A,@DPTR          ;

    MOV #SAVEREM,A  ;存储在内部RAM,SAVERAM单元

    INC DPTR       ;

NEXT:    MOV A,@DPTR    ;

    MOV B,A       ;

    CLR C        ;CY是否进位/借位,是==1,否==0,CY清零

    SUBB A,#SAVEREM  ;

    JC XT         ;JC=JMP CARRY 

    MOV #SAVEREM,B    ;有借位更新最大值

XT:   INC DPTR        ;

    DJNZ  NEXT      ;DJNZ = DEC JMP NOT ZERO

WAIT:  SJMP  WAIT        ;

    END            ;

 

51C版本

#include<reg51.h>

#include<absacc.h>

const int res = 0x??//目的存储地址

const int a = 0x??//数组起始地址

const int num = ?

main(){

  unsigned int i , p = a;//REM存储地址

  unsigned char max;

  max = DBYTE[p++];//为什么后执行p++?

  for(i = 0;i < num;i++,p++){

    if(max < DBYTE[p]){

      max = DBYTE[P];

    }

  }

  DBYTE[res] = max;

}

 

课后梳理

posted on 2020-12-25 21:33  HatTrickMaster  阅读(137)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3