Re: Message[306] :Crossing page boundary -- ensure page bits are set
|
||||
---|---|---|---|---|
版主
|
標準的寫法如下:
movlw (high) Sub_Call ; 抓出副程式的MSB的程式位址 movwf PCLATH ; 設定 PCLATH<3:4>的 Page call Sub_Call or goto Sub_Call 比較簡單的寫法可使用MPASM所提供的虛指令如下方式: pagesel Sub_Call ; 使用虛指令自動設定跳躍PAGE的設定 call Sub_Call or call Sub_Call
發表於: 2004/9/30 9:31
|
|||
|
Re: Message[306] :Crossing page boundary -- ensure page bits are set
|
||||
---|---|---|---|---|
版主
|
有關此詳細說明可參考右邊的"教材及講義"項內的 MPASM workshop 的說明
發表於: 2004/9/30 9:45
|
|||
|
Re: Message[306] :Crossing page boundary -- ensure page bits are set
|
||||
---|---|---|---|---|
版主
|
參照:
pagesel Sub_Call 在組譯之後,會轉換為如 BSF (或BCF) PCLATH,3 BSF (或BCF) PCLATH,4 的指令,不會影響到W暫存器的內容 Ryang所寫的第一種方法,會把PCLATH的全部內容改變,但也會影響W暫存器,也許並不是您所樂見。此法常用於欲利用ADDWF PCL及RETLW指令來作查表法時,將PAGE先期設定時使用。
發表於: 2004/9/30 11:31
|
|||
|
Re: Message[306] :Crossing page boundary -- ensure page bits are set
|
||||
---|---|---|---|---|
高級會員
|
這個訊息只是個提示 , 當程式執行CALL或GOTO不同的PAGE時 , 組譯器會提醒使用者再一次確認在這些指令之前是否已經正確的切換PCLATH(Mid-Range)或是STATUS(Base-Line)的頁面切換位元 , 而寫法正如上面幾位大師所建議的一樣
發表於: 2004/9/30 17:55
|
|||
|
Re: Message[306] :Crossing page boundary -- ensure page bits are set
|
||||
---|---|---|---|---|
新會員
|
謝謝各位先進!
後輩有使用"PAGESEL SUB_XXX"(in page 1 from page 0),可以讓程式正確GOTO到你想去的PAGE,但是若你下面的程式要再GOTO(in PAGE 1 )的話,還要再一次把PAGE調回來,跟大家分享一下,謝謝大家。
發表於: 2004/10/1 11:25
|
|||
|