1个回答
展开全部
红色的是参考答案,还是你做的呢?它是对的啊!
更多追问追答
追问
怎么做呢,能具体说说嘛?
追答
无可否认,这个程式看上去不似得实用,反而是有点故弄玄虚,是要测试学生的逻辑思维能力及对MCS-51系统的认识程度吧。
首先POP DPH和POP DPL并无实际意义,但改变了SP的值,由42H降到40H
MOV DPTR,#3000H是把数据指针设定为3000H
RL A是把累加器内容8位元向左移1位,即由02H变成04H了
MOV B,A把A的数据保存在B
MOVC A,@A+DPTR是数据指针加A的值,即3004H所在地址的内容,即DB行第5个,即50H放到A
PUSH Acc是把A的内容保存在(41H),SP就加1变成41H
MOV A,B及INC A是把之前保存了的A拿回来,然后加1,即为05H
MOVC A,@A+DPTR数据指针加A,即3005H,指向DB行第6个,即80H放到A
PUSH Acc把A保存到(42H),SP加1成42H
RET是返回主程序,注意这是堆栈指针SP+1为PC低位,SP+2为PC高位,然后SP会减2成40H
这就成就了红色显示的答案了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询