单片机汇编程序题,求高手进 急用!

①(R0)=20H ,(20H)=10H, (P0)=30H, (R2)=20H;

MOV @R0,#11H

MOV A,R2

ADD A,20H

MOV PSW,#80H

SUBB A,P0

XRL A,#45H

MOV 40H,A

求(40H)等于多少?

②(R0)=20H,(20)H=36H,(21H)=17H,(24H)=34H,(36H)=34H;

MOV A,@R0

MOV R0,A

MOV A,@R0

ADD A,21H

ORL A,#21H

RL A

MOV R2,A

RET

求(R0)等于多少,(R2)等于多少?

这个不需要什么高手,这只是简单的汇编语言逻辑运算。稍微懂点就知道的额
第一题答案(40H)=45H
第二题答案:
(R0)=36H (R2)=0D6H
稍微解释一下,XRL A,#45H 这句是 逻辑异或,即对二进制数进行运算
相同为0不同为1.

MOV A,@R0这条语句,@R0是间址寻址方式,执行完这条语句后, (A)=36H

还哪里不理解,追问即可,在线等待,满意记得采纳哦。答案应该是对的~~嘻嘻,单片机要好好学啊追问

能给个详细计算步骤么?谢谢了

追答

我详细 给出一题好不好,应为这两题是差不多的。。这个敲键盘 我速度有点慢~~鸭梨很大。。

追问

嗯 第二题跟我讲下,还有第一题的MOV PSW,#80H 是什么作用

追答

MOV PSW,#80H psw是单片机的一个SFR寄存器,八位 程序状态字。
意思就是将 立即数80H传送给psw,十六进制80h 写成 二进制就是1000 0000

MOV A,@R0 间址寻址指令,@R0,以R0的内容为地址 找到操作数36h 然后送给累加器A
MOV R0,A 数据传送,A又送给 寄存器R0 所以 R0=36H
MOV A,@R0 与第一句一样,间址寻址指令,再以36H为地址找到操作数 34H (A)=34h
ADD A,21H 加法指令 ,累加器的内容与21H内容相加,二进制形式。(A)=4Bh

ORL A,#21H 逻辑异或,即相同为0不同为1 执行完 A=6Bh
RL A 不带进位 循环左移,执行完 A=0D0 h
MOV R2,A 最后将结果送到R2中,所以R2= 0D0h

注意十六进制数以 字母开头时,前面需要加0
单片机要好好学啊~~真的有用

大概就这么多,累死了,这道题估计是我最用心回答的,楼主你就给分吧

追问

嗯 这分肯定给你的 你放心吧 谢谢你了哈 能留下你的QQ么 下次不会还找你 嘿嘿 等下给你加分

追答

回答提交失败了 我扣扣 1362324125

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-03
朋友,这是最基本的汇编指令,非常简单,就是一些赋值传递和加减指令,背好111条指令集或精简指令集,这些一看就懂,不需要高手解答,初学者即可,感觉枯燥,就学学视频,但是有兴趣是不会枯燥的,因为你会感觉你进入的世界是普通人不知道的 神秘又富有逻辑
相似回答