⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emc单片机学习笔记(7)page宏.txt

📁 EMC78p156学习笔记! EMC78p156学习笔记!
💻 TXT
字号:
 义隆的单片机如果不使用PAGE的概念,那么大小会被限制在1K范围内。
当开发稍微复杂些的产品的时候,不可避免的需要使用PAGE来保证程序的
正确流程,并且可以允许在超过1K的地址空间。
    关于PAGE相关的Register有:R2和R3。PC是个8bit的寄存器,可以查
询和修改PC的A0-A9。STATUS中有几个BIT表示PAGE选择器。分别为PS0、
PS1(此为EM78P447,更大的单片机还有PS2、PS3等)。
    当有JMP或CALL发生的时候,PC的整个地址会被压栈,高位地址使用
PS0、PS1作为A10、A11,A0-A9使用JMP或CALL指定的地址。当RET、RETI
或RETL发生的时候,从堆栈中弹出完整的PC,注意这里是完整的A0-A11。
这样就可以实现对其他PAGE子程序的调用了。
    看EMC提供的Far Call宏,第一行为宏定义;第二行指令实现PAGE寄存
器的修改;第三行产生真正的call,去调用其他page的子程序;第四行在
把PAGE寄存器修改为当前PAGE。CALL为什么可以正常返回?请看上面的叙述
“从堆栈中弹出完整的PC”。
FCALL   MACRO ADDRESS
    PAGE ADDRESS / 0X400
    CALL ADDRESS % 0X400
    PAGE $ / 0X400
    ENDM
    这样,使用这个宏,就不用再独立考虑PAGE的问题了。Far Jmp的宏大家
可以参考上面的解释去理解。
FJMP MACRO ADDRESS
    PAGE ADDRESS / 0X400
    JMP ADDRESS % 0X400
    ENDM

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -