[問題] 初學PIC系列單晶片

看板ASM (組合語言)作者 (豆腐)時間16年前 (2008/04/30 09:04), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/3 (看更多)
最近在閱讀PIC系列單晶片的DATA SHEET,有幾個小問題想不通,想請問: 1.以80C51來說,我們可以直接將常數值用立即定址的方式給輸出PORT,如: MOV P1,#10101010B 但是在PIC系列IC的標準指令集中,資料搬移指令細分為很多種,卻沒有一種可 以直接將常數丟往輸出PORT(根據使用手冊敘述,PORT似乎可以視為暫存器,但 仍然沒有一種資料搬移指令可以將常數丟往暫存器。),如果要達到上述功能, 僅能靠: MOVLW B'10101010' MOVWF PORTB 來實現,以執行所花費時間來看,的確不一定會比較久,但對於撰寫的過程中, 每次要操作輸出PORT(暫存器)都得經過W累加器感覺有點麻煩,想請問一下是不是 有更簡單或是更常用的方法呢? 2.以80C51來說,使用者很清楚基本的一般暫存器總共有8*4=32個(R0~R7*4組暫存 器庫),然而在PIC的架構中,暫存器確是一片記憶體"區塊",如果8-BIT劃成一個 的話應該有非常多暫存器可以用,但是縱使知道有很多記憶體空間可用,卻不知道 如何操作起,因為它們沒有像R0、R1這樣的"名字",想請問我該如何把這麼大一片 記憶體空間,規劃成暫存器呢(像是R0就是指XXX位址、R1就是指XXX位址這種感覺) ? 因為我目前唯一學習過的單晶片只有89C51,所以上面兩個小疑問都是以89C51為比 較,我了解兩者架構上有所不同,所以不見得能做到,但還是想釐清是否可行。 - 這篇本來是PO在電機電子版,但可能在使用PIC單晶片的版眾不多,忽然想起ASM版 範圍含跨單晶片,所以把跟晶片使用上比較有關的問題取出重貼於此,想跟大家請 教一下。 如果大家認為範圍還是脫離版上所規定的區塊,不好意思,我再來刪除。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.181.137

05/01 12:36, , 1F
1. 沒辨法,不過可以用巨集來讓它看起來簡單一點
05/01 12:36, 1F

05/01 12:36, , 2F
2. 位址也是可以取名字的,像8051一般的暫存區也是沒有特
05/01 12:36, 2F

05/01 12:37, , 3F
定名稱,要自己取名
05/01 12:37, 3F
文章代碼(AID): #185yMLQw (ASM)
文章代碼(AID): #185yMLQw (ASM)