作者nicebluesky (最长的电影)
看板ASM
标题[问题] 请问8051 组合语言 怎麽把两组PORT的值丢在累积器A里面动作?
时间Fri Sep 25 00:01:34 2009
请问各位大师
我想写一个程式
有关於感测器的
因为有两组感测器
一组里面有四个CYN70
由於硬体的关西
第一组感测器所用到的脚位是
P0.0 P0.1 P0.2 P0.3
第二组是
P1.0 P1.1 P1.2 P1.3
想把两组的值
都放进累积器A里面
变成
P1.3 P1.2 P1.1 P1.0 P0.3 P0.2 P0.1 P0.0
这样子摆放在A理面来执行其他动作指令
不知道该怎模样才可以同时存入
是先把某一组先位移吗?
如果是以下这样写法可行吗?
MOV A,P1
RR A
RR A
RR A
RR A
MOV A,P0
麻烦高手指点 THX~
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.244.170.43
1F:→ ruemann:有个指令叫swap 09/25 02:25
2F:→ ruemann:mov a, p1 09/25 02:28
3F:推 ruemann:你的写法有一个问题就是最後面的mov直接把A覆盖掉了 09/25 02:32
4F:→ ruemann:要达成你的要求,无论如何还是需要一个额外的暂存器来存值 09/25 02:32
5F:→ ruemann:anl a, #0xF0 09/25 02:34
6F:→ ruemann:mov R0, a 09/25 02:34
7F:→ ruemann:mov a, p0 09/25 02:34
8F:→ ruemann:anl a, #0x0F 09/25 02:34
9F:→ ruemann:orl a, R0 09/25 02:35
10F:→ ruemann:然後 a 就是你要的东西 09/25 02:35
11F:→ ruemann:……囧……少key一行 09/25 02:35
12F:→ nicebluesky:感谢大师指点 09/25 02:41
13F:推 ruemann:回在下面了,看看有没有大师要鞭我……XD 09/25 02:43