片内RAM30H~39H单元有10个单元字节无符号数,找上最大的数存入R5
来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/11 21:44:24
片内RAM30H~39H单元有10个单元字节无符号数,找上最大的数存入R5
;test
\x05MOV 30H,#3
\x05MOV 31H,#2
\x05MOV 32H,#4
\x05MOV 33H,#5
\x05MOV 34H,#7
\x05MOV 35H,#8
\x05MOV 36H,#1
\x05MOV 37H,#0
\x05MOV 38H,#5
\x05MOV 39H,#90
;test
\x05MOV R0,#30H ;起始地址.
\x05MOV R5,#00H ;先用0当做最大值.
\x05MOV R2,#10 ;数据长度.
LOOP:
\x05MOV A,@R0 ;取来一个数据.
CLR C
SUBB A,R5 ;减“最大值”.判断Cy位,Cy为1则说明R5为最大
\x05JC rel1 ;不够减就算了.
\x05MOV A,@R0 ;够减,就把这个数据.
\x05MOV R5,A ;当做最大值.
rel1:
\x05INC R0 ;转向下一个.
\x05DJNZ R2,LOOP ;循环.
\x05SJMP $ ;结束.
END
再问: R5是寄存器啊,怎么能拿来比较啊
再答: 这里的“比较”是通过做减法来实现的。SUBB A, R5这条指令也是合法的。代码我仿真过了,没有错。还有不清楚的可以继续追问。
再问: 片内RAM30H~39H单元有10个单元字节无符号数,10个数进行比较将最大的数存入R5,题目有点错,是将10个数比较后找出最大的存入R5谢谢
再答: ;test MOV 30H,#3 MOV 31H,#2 MOV 32H,#4 MOV 33H,#5 MOV 34H,#7 MOV 35H,#8 MOV 36H,#1 MOV 37H,#0 MOV 38H,#5 MOV 39H,#90 ;test MOV R0, #31H ;起始地址. MOV R5,30H ;先用30H地址的值当做最大值. MOV R2, #9 ;数据长度,把第一个当做最大,与剩下的九个比较. LOOP: MOV A, @R0 ;取来一个数据. CLR C SUBB A, R5 ;减“最大值”.判断Cy位,Cy为1则说明R5为最大 JC rel1 ;不够减就算了. MOV A, @R0 ;够减,就把这个数据. MOV R5,A ;当做最大值. rel1: INC R0 ;转向下一个. DJNZ R2, LOOP ;循环. SJMP $ ;结束. END 还可以用CJNE指令来处理
再问: 9 8 7 6 2 1 1 9 2 加我,谢谢
\x05MOV 30H,#3
\x05MOV 31H,#2
\x05MOV 32H,#4
\x05MOV 33H,#5
\x05MOV 34H,#7
\x05MOV 35H,#8
\x05MOV 36H,#1
\x05MOV 37H,#0
\x05MOV 38H,#5
\x05MOV 39H,#90
;test
\x05MOV R0,#30H ;起始地址.
\x05MOV R5,#00H ;先用0当做最大值.
\x05MOV R2,#10 ;数据长度.
LOOP:
\x05MOV A,@R0 ;取来一个数据.
CLR C
SUBB A,R5 ;减“最大值”.判断Cy位,Cy为1则说明R5为最大
\x05JC rel1 ;不够减就算了.
\x05MOV A,@R0 ;够减,就把这个数据.
\x05MOV R5,A ;当做最大值.
rel1:
\x05INC R0 ;转向下一个.
\x05DJNZ R2,LOOP ;循环.
\x05SJMP $ ;结束.
END
再问: R5是寄存器啊,怎么能拿来比较啊
再答: 这里的“比较”是通过做减法来实现的。SUBB A, R5这条指令也是合法的。代码我仿真过了,没有错。还有不清楚的可以继续追问。
再问: 片内RAM30H~39H单元有10个单元字节无符号数,10个数进行比较将最大的数存入R5,题目有点错,是将10个数比较后找出最大的存入R5谢谢
再答: ;test MOV 30H,#3 MOV 31H,#2 MOV 32H,#4 MOV 33H,#5 MOV 34H,#7 MOV 35H,#8 MOV 36H,#1 MOV 37H,#0 MOV 38H,#5 MOV 39H,#90 ;test MOV R0, #31H ;起始地址. MOV R5,30H ;先用30H地址的值当做最大值. MOV R2, #9 ;数据长度,把第一个当做最大,与剩下的九个比较. LOOP: MOV A, @R0 ;取来一个数据. CLR C SUBB A, R5 ;减“最大值”.判断Cy位,Cy为1则说明R5为最大 JC rel1 ;不够减就算了. MOV A, @R0 ;够减,就把这个数据. MOV R5,A ;当做最大值. rel1: INC R0 ;转向下一个. DJNZ R2, LOOP ;循环. SJMP $ ;结束. END 还可以用CJNE指令来处理
再问: 9 8 7 6 2 1 1 9 2 加我,谢谢
片内RAM30H~39H单元有10个单元字节无符号数,找上最大的数存入R5
【单片机】编程计算存放在片外RAM30H单元开始的64个无符号数的平均值,结果存入片内RAM30H单元
找出外RAM 2000H起始单元16个无符号数中的最大数(最小数),并将值存入内RAM 20H单元
在内部RAM的21H单元开始存有一组单字节无符号数,数据长度为20H,编写程序要求找出最大数存入MAX单元 .
片外RAM区从1000H单元开始存有100个单元字节无符号数,找出最大值并存入1100H单元
把片内RAM中地址30H到39H中的10个无符号数逐一比较,并按从小到大的顺序依次排列在这些单元中.
在内存BLOCK开始处存放3到10个无符号字节数,从中找出最大数送入MAX单元中
.ARRAY单元开始存放200个有符号字节数,统计出其正数、0和负数的个数,并把它们分别存入N1、N2、和N3中.
试编写一段程统计从片内RAM的10H单元起所存的100个字节单元中“1”位的个数.
用汇编编一道题,假设内部RAM的30H~39H单元中存有10个无符号数,查找其中的最大者,并存入3AH中.每条指令加注释
编一程序:比较两个无符号数的大小.把大数存入MAX单元
在片外2000H开始的单元中有100个有符号数,试编程统计其中正数、负数、零的个数.