单片机汇编问题:求一组数据的最大值(或最小值);

1.求一组数据的最大值(或最小值);
2.找出一串数据的正数(或负数),且从片外RAM传送到片内RAM。要求用汇编写 ,我不会呀 !求高人指点!!!!!能解决的话我再加80分!!!!!!

1.求一组数据的最大值(或最小值);
;函数名:FIND_MAX
;函数功能:寻找数据中的最大值
;入口参数:R7数据长度,R7 >= 2
; R0数据开始地址
;出口参数: R6,数据的最大值
FIND_MAX:
MOV A,@R0
INC R0
DEC R7
FIND_MAX_LOOP:
MOV B,@R0
CJNE A,B,FIND_MAX_LOOP1
FIND_MAX_LOOP1:
JNC FIND_MAX_LOOP2
MOV A,@R0
FIND_MAX_LOOP2:
INC R0
DINZ R7,FIND_MAX_LOOP
MOV R6,A
RET
温馨提示:内容为网友见解,仅供参考
无其他回答

51单片机如何用汇编语言从十个数里选出最大值最小值
1、首先可以利用51单片机子程序输出找到的最大最小值。2、其次按照数据存储或者输入的顺序,把每2个数进行比较。3、最后每次比较都选择较大的数和下一个数据进行比较,这样最后一次比较中较大数就是10个数据里面的最大值。

求单片机编程找最大数
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 ...

单片机编程题,用汇编语言 找出片内30H~3FH中的最大值
BIG:MOV B, #0 ;先用0充当最大值 MOV R0, #30H LOOP:MOV A, @R0 ;取来一个数字 CLR C SUBB A, B ;减去最大值 JC NEXT ;不够减转移 MOV B, @R0 ;够减了,就把它当成最大值 NEXT:INC R0 ;转到下一个 CJNE R0, #40H, LOOP ...

单片机如何选出一段时间内的最大值
for( i=0;i<5;i++) if(b

51单片机汇编语言中最高位,最低位是什么意思?如图
(1)0001111 最左侧的数为最高位 1000111(1 )最右侧的数为最低位 51单片机内部RAM的地址起止是00H~7FH,共128个字节单元,一个字节单元有8个位,就是8bit,其中00H~1FH是通用寄存器组(1组到3组),20H~2FH是可位寻址的,在这个区域可以位寻址也可以字节寻址,其中21H这个字节单元的位...

51单片机 汇编语言 常用数据处理程序设计 求16个无符号数的最大值
ACALL ZI SJMP ;--- ZI:MOV B, #0 ;先用0当做最大值.MOV R7, #16 ;比较16次.LOOP: MOV A, @R0 ;取来一个数字.CJNE A, B, B1 ;比较.B1: JC B2 ;有借位转移.MOV B, A ;够减则存到B中.B2: INC R0 ;转到下一个.DJNZ R7, LOOP ;...

单片机汇编程序如何判断一个数值是否在某个区间?
可以用这个数值和这个区间的最大值和最小值相减(带借位减法,标志位事先要清零),然后判断标志位的状态即可 如果和最小值相减标志位为0,和最大值相减标志位为1,则说明在这个区间内

单片机汇编程序问题
(x)=y,表示的是将y存放到片内RAM中地址为x的存储单元里。H表示16进制数。所以(30H)=38H:30H单元中存入一个数38H;(38H)=40H: 38H单元中存入一个数40H;(40H)=48H: 40H单元中存入一个数48H;(48H)=90H: 48H单元中存入一个数90H 。

单片机汇编程序如何判断一个数值是否在某个区间?
可以用这个数值和这个区间的最大值和最小值相减(带借位减法,标志位事先要清零),然后判断标志位的状态即可 如果和最小值相减标志位为0,和最大值相减标志位为1,则说明在这个区间内

请教一个单片机赋值的问题
x1 = ………;\/* 一个很复杂的表达式 *\/ 关中断;x2 = x1; 开中断;这样关的时间就可以短一些。也有的时候,高优先级的进程有很多个不同的中断,而我们只需要防止其中的某一个中断来打断,也可以采取某种措施,并不去总的“关中断”,而是有选择性的只关某一个中断。

相似回答