|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教——CALL A (P16F873),這條指令的執(zhí)行情況,,, |
| 作者:Wxy8030 欄目:單片機 |
ORG 0x0010 CALL ZX ORG 0x0200 ZX:ANDLW 0x0F ;濾除高位 ADDWF PCL,F , 我理解CALL A ,這條指令執(zhí)行后,程序跳到ZX處,此時PCLATH不應(yīng)該仍為0,應(yīng)該變成0x02了,,,,,但我不管用MPLAB軟件彷真、還是用高齊的2002彷真器硬件運行,PCLATH就是不變,,,,,軟件彷真時程序跳到ZX處繼續(xù)執(zhí)行了,PCLATH還是0,執(zhí)行完ADDWF PCL,F就跳到到了一個莫名其妙的地方,,,,, 我哪里錯了?? * - 本貼最后修改時間:2003-4-30 16:11:44 修改者:Wxy8030 |
| 2樓: | >>參與討論 |
| 作者: delta_sun 于 2003/4/30 16:28:00 發(fā)布:
這個問題很常見。 1、跳轉(zhuǎn)和調(diào)用不會自動修改PCLATH的值,要手動賦值生成頁地址; 2、使用MPASM的匯編控制偽指令,可在匯編的過程中自動生成頁地址,請參考MPLAB的說明書; 3、這就是PIC的特點之一。 :) |
|
| 3樓: | >>參與討論 |
| 作者: martin 于 2003/4/30 16:39:00 發(fā)布:
說了好多遍了 PIC16系列的PC(13位)是由PCH(高5位)和PCL(低8位)兩個寄存器組成。因為修改PC的時候要同時修改兩個寄存器,所以引入了PCLATH(PCH的鎖存器)。當(dāng)要修改PC時,只能對PCL操作,PCH會在修改PCL的同時自動從PCLATH裝入。 概念1:PCLATH寄存器不會隨著PC的變化而改變; 概念2:PCLATH里的值會在修改PCL時裝入PC的高位 概念3:CALL和GOTO指令里含有11位地址,執(zhí)行這兩條指令時,會從PCLATH的高兩位裝入PC的高兩位(即常說的PAGE)。但PCLATH里面的值不會變。 |
|
| 4樓: | >>參與討論 |
| 作者: Wxy8030 于 2003/4/30 16:41:00 發(fā)布:
理解錯誤!我總認(rèn)為程序計數(shù)器就是PCLATH+PCL—— ,,,, * - 本貼最后修改時間:2003-4-30 16:43:19 修改者:Wxy8030 |
|
| 5樓: | >>參與討論 |
| 作者: shiaf 于 2003/4/30 16:48:00 發(fā)布:
問一下,那 PIC18 CALL 時 PC 的值怎么變化? |
|
| 6樓: | >>參與討論 |
| 作者: Wxy8030 于 2003/4/30 17:25:00 發(fā)布:
感謝martin兄。 剛用PIC,還有許多不明之處還望指教哈,,,,,,, |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |