在程序存储器中跨越页面边界

时间:2016-11-18 16:05:34

标签: assembly pic

我需要有关程序存储器位置的汇编代码和页面交叉的帮助。

is_bot

如果我想在程序存储器中跨越页面边界。例如第0页到第3页。我应该编写什么代码?

1 个答案:

答案 0 :(得分:1)

PCLATH寄存器的第3位和第4位确定页码!

示例:

BCF  PCLATH,4 ;Select page0
BCF  PCLATH,3 ;Select page0
CALL xpage0
...
BCF  PCLATH,4 ;Select page 1
BSF  PCLATH,3 ;Select page 1
CALL xpage1
...
BSF  PCLATH,4 ;Select page2
BCF  PCLATH,3 ;Select page2
CALL xpage2
...
BSF  PCLATH,4 ;Select page 3
BSF  PCLATH,3 ;Select page 3
CALL xpage3
...

较新的PIC16xxx MCPU使用特殊指令MOVLP

示例:

MOVLP high HiProc2
CALL  HiProc2
...