"); //-->
MPLAB中有条非常有用的伪指令:BANKSEL可用它来快捷设置 BANK 而不用 STATUS 的 RP0 ,RP1去具体的设置BANK 。
BANKSEL ****,通常只改变STATUS,RP1,RP0,而RP1,RP0仅仅对 直接寻址 有效
但BANKSEL不会改变STATUS,IRP,也就是说,BANKSEL的页选择对 间接寻址 是没有用的.
以877A为例,如果你的寻址目标在BANK1,那么你设置BANKSEL BANK1,这样直接,间接寻址都有效
但如果你的寻址目标在BANK3,而用BANKSEL BANK3设置页地址,此时直接寻址有效,但间接寻址就会出错,因为BANKSEL不能改变STATUS,IRP
编译是能通过的,没问题,即便你不设置BANKSEL,编译也照样能通过,如果你用BSF(BCF) STATUS,RP0(RP1)语句编译并烧录后,程序能正常运行,而用BANKSEL BANK*,编译并烧录,而程序却不能通过,这样的问题才是古古怪怪的问题,那我也没办法.
我有一个大程序,开始能通过,后来因为扩展,将原来BANK1上定义的寄存器改为BANK2,对应的页设置也仅仅是用BANKSEL BANK3,编译照样能通过,运行时就麻烦了.后来在每个BANKSEL BANK*的语句后面紧跟一句BSF(BCF) STATUS,IRP.如果要返回BANK0时,全部用CLRF STATUS(或者同时将IRP,RP1RP0)三个位清0
PUSH_MACRO MACRO
MOVWF W_TEMP
SWAPF STATUS,W
MOVFW STATUS_TEMP
ENDM
POP_MACRO MACRO
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
ENDM
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
2005年国际航宇回顾
Numonyx Axcell M29EW:更快的编程速度与更强的安全性
ARM指令格式和时序
上海新时达电梯控制电路(PLC+变频器)(2)
DeepSeek适配国产芯片:差异化表现,商用前景各异
三星显示与英特尔携手为智能PC市场
出发!和骁龙座舱平台至尊版一起畅享智慧出行新体验
arm仿真器资料_实时在线 ARM仿真器
GPU,加速计算光刻
2028年中国ICT市场规模将超7,517亿美元,五年复合增长率6.5%
请教:怎样得到D:\\test下所有*.dat文件组成的字符串?
2025年无线连接七大趋势,你都get到了吗?
美军导弹武器低成本化的途径与方式
上海新时达电梯照明电路(PLC+变频器)
经济高效的AI系统助力语音与图像识别
北京五洲电梯主电路
加速无线产品开发:恩智浦发布新版MCUXpresso SDK!
美国设想的反卫星武器技术
如何配置8260板上eth口的ip地址?
上海新时达电梯控制电路(PLC+变频器)(4)
历史首次!三星将使用长江存储专利技术
ATX标准架构介绍
Apple智能与阿里达成合作,4月上线!
Ansoft HFSS 9.2教程
高薪诚聘
网络中心战中的无人机系统
Allegro转Gerber所需注意到的问题
[求助]关于液体灌装生产线控制系统的设计
北京五洲电梯安全回路与抱闸电路
新视频服务器