Re: C18之 Swapf 問題
|
||||
---|---|---|---|---|
高級會員
|
是否C編譯器判斷PORTD是屬於BSR=0xF
所以C編譯器在MOVLB後面放0xF
發表於: 2009/10/31 13:21
|
|||
|
Re: C18之 Swapf 問題
|
||||
---|---|---|---|---|
高級會員
|
我知道
SWAPF 0xf83, F, ACCESS 這行不需要知道BSR 所以這行MOVLB 0xf 目前沒有意義 我知道他不會出現MOVLB PORTD 而是應該MOVLB 0xF83 但是為什麼出現MOVLB 0xf ? 他是根據什麼道理留下0xf ? 是取0xF83的0xF嗎 ? 這才是我的問題 求教大家
發表於: 2009/10/31 13:11
|
|||
|
Re: C18之 Swapf 問題
|
||||
---|---|---|---|---|
資深會員
|
你看到的是, asm反組譯,結果不會有PORTD出現
010F MOVLB 0xf 3A83 SWAPF 0xf83, F, ACCESS 就如樓上所述,詳情請看spec, 有關於 movlb的作用
發表於: 2009/10/30 12:52
|
|||
|
Re: C18之 Swapf 問題
|
||||
---|---|---|---|---|
新會員
|
Data sheet裡
搜尋關鍵字access bank
發表於: 2009/10/30 9:51
|
|||
|
Re: C18之 Swapf 問題
|
||||
---|---|---|---|---|
高級會員
|
我的問題重新敘述一次
------------------------------------ 在p18f4520.h裏有這段內容 #define Swapf(f,dest,access) {_asm movlb f swapf f,dest,access _endasm } 我的問題是 根據movlb f 應該是翻成MOVLB PORTD 為什麼是MOVLB 0xf ?
發表於: 2009/10/30 9:09
|
|||
|
C18之 Swapf 問題
|
||||
---|---|---|---|---|
高級會員
|
C語言:
Swapf(PORTD, 1, 0); 翻譯成組語為: 010F MOVLB 0xf 3A83 SWAPF 0xf83, F, ACCESS 其中MOVLB後面為什麼是 0xf ? 請教大家一下! 謝謝!
發表於: 2009/10/29 18:39
|
|||
|