Re: [問題] 請問8051 組合語言 怎麼把兩組PORT的值 …
我來龜毛一下好了,這個比ruemann的方法沒效率,但是可以只使用A :P
B T
MOV A,P0 ;A=P0.7.6.5.4.3.2.1.0 2 1
MOV C,P1.3 2 1
RLC A ;A=P0.6.5.4.3.2.1.0 P1.3 1 1
MOV C,P1.2 2 1
RLC A ;A=P0.5.4.3.2.1.0 P1.3.2 1 1
MOV C,P1.1 2 1
RLC A ;A=P0.4.3.2.1.0 P1.3.2.1 1 1
MOV C,P1.0 2 1
RLC A ;A=P0.3.2.1.0 P1.3.2.1.0 1 1
14 9
總共14BYTE 9個執行週期,ruemann的程式碼只需要11個BYTE跟7個執行週期
所以,效率比較差 :P
※ 引述《ruemann (樹海游魂)》之銘言:
: 總之因為推文很麻煩,推錯了又不能改,所以…
: 我的方法一向是以簡單直覺為主,大家可能會覺得方法有點笨,不過應該很好理解
: mov a, P1 ; a = P1[7..0]
: swap a ; a = P1[3..0]P1[7..4]
: anl a, #0xF0 ; a = P1[3..0]0000
: mov R0, a ; R0= P1[3..0]0000
: mov a, P0 ; a = P0[7..0]
: anl a, #0x0F ; a = 0000P0[3..0]
: orl a, R0 ; a = P1[3..0]P0[3..0]
: 大概就是這樣
: ※ 引述《nicebluesky (最長的電影)》之銘言:
: : 請問各位大師
: : 我想寫一個程式
: : 有關於感測器的
: : 因為有兩組感測器
: : 一組裡面有四個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理面來執行其他動作指令
: : 不知道該怎模樣才可以同時存入
--
作別人不願作的事,是好人!。 作別人不敢作的事,是壞人!。
作別人不能作的事,是天才!。 作別人不會作的事,是…腦殘!!
WolfLord
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.178.209
推
09/25 03:14, , 1F
09/25 03:14, 1F
推
09/25 03:17, , 2F
09/25 03:17, 2F
→
09/25 14:36, , 3F
09/25 14:36, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章