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) 收藏 举报
浙公网安备 33010602011771号