一道单片机的编程题

阅读下列程序,要求:(1)说明该程序的功能;(2)填写所缺的机器码;(3)试修改程序,使片内RAM的内容成为如图所示结果图在这826460194.photo.qq.com... 阅读下列程序,要求:
(1)说明该程序的功能;
(2)填写所缺的机器码;
(3)试修改程序,使片内RAM的内容成为如图所示结果
图在这826460194.photo.qq.com 进相册后ABC里的那张图就是

7A __ ··········MOV R2,#0AH
__ __ ··········MOV R0,#50H
E4 ···········CLR A
F6 ·········LOOP:MOV @R0,A
08 ············INC R0
DA__ ···········DJNZ R2,LOOP
···········DONE:

最好有点说明啊,做得对的解释详细的话再追加点分
展开
 我来答
罗门大佬
2008-11-23 · TA获得超过1523个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:429万
展开全部
现假定左边是地址,右边的是内容
1.它的功能是以50H为首地址,个数为0AH个的RAM全部清零

2.机器码
7A 0A··········MOV R2,#0AH
mov rn的机器码是01111xxx,其中xxx由Rn的地址来决定,相应地,R0~R7二进制地址为000~111
那么R2就是010,后面的数据就跟着mov rn的机器码后面

7850··········MOV R0,#50H
E4 ···········CLR A;
机器码固定
F6 ·········LOOP:MOV @R0,A

mov @rn,a机器码为1111011n
n就是Rn的n
所以间接寄存器寻址只能是R1或R0

08 ············INC R0
inc rn机器码为00001xxx
xxx同理为Rn的物理地址

DA__ ···········DJNZ R2,LOOP
djnz rn机器码11011xxx
xxx同理为RN的物理地址
loop为8位地址标号
机器码是以loop为首的第一个指令离loop的单元数
所以djnz r2,loop的loop不能放在此后超过255字节的程序空间单元
题中loop:后面跟有MOV @R0,A占1个内部ram单元,INC R0占1个内部ram单元,DJNZ R2占1个内部ram单元(由机器码可得),所以255-3=252=FCH
即机器码为DAFC

···········DONE:

3.对于第三个问题,楼上的方法有误
,R0和R2有可能在00H~A0H
而且你只是把0~10放入50H~5AH单元
所以可以这样
SETB RS1
SETB RS0;R0工作在18H单元
MOV A,#50H
MOV R2,#10
MOV R0,#0
LOOP:
MOV @R0,A
INC A
INC R0
DJNZ R2,LOOP

经仿真无误
tianhj2001
2008-11-23 · TA获得超过189个赞
知道小有建树答主
回答量:409
采纳率:0%
帮助的人:181万
展开全部
1.该程序的功能是将50h~5ah的内容清零。
2.机器码要看书,我不知道,呵呵
3.
MOV R2,#0AH
MOV R0,#50H
CLR A
LOOP:
MOV @R0,A
INC R0
INC A ;将A的值每次加1就可以了
DJNZ R2,LOOP
DONE:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式