作者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