专栏中心

EEPW首页 > 专栏 > pic汇编宏技巧-bank切换

pic汇编宏技巧-bank切换

发布人:mayer 时间:2009-08-03 来源:工程师 发布文章
pic汇编宏技巧-bank切换

 

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年国际航宇回顾

视频 2010-01-14

Numonyx Axcell M29EW:更快的编程速度与更强的安全性

视频 2010-01-14

ARM指令格式和时序

资源下载 2007-03-23

DeepSeek适配国产芯片:差异化表现,商用前景各异

三星显示与英特尔携手为智能PC市场

光电显示 2025-02-25

出发!和骁龙座舱平台至尊版一起畅享智慧出行新体验

GPU,加速计算光刻

智能计算 2025-02-25

2028年中国ICT市场规模将超7,517亿美元,五年复合增长率6.5%

2025年无线连接七大趋势,你都get到了吗?

美军导弹武器低成本化的途径与方式

视频 2010-01-14

经济高效的AI系统助力语音与图像识别

加速无线产品开发:恩智浦发布新版MCUXpresso SDK!

美国设想的反卫星武器技术

视频 2010-01-14

历史首次!三星将使用长江存储专利技术

ATX标准架构介绍

Apple智能与阿里达成合作,4月上线!

智能计算 2025-02-25

Ansoft HFSS 9.2教程

网络中心战中的无人机系统

视频 2010-01-14

Allegro转Gerber所需注意到的问题

资源下载 2007-03-23
更多 培训课堂
更多 焦点
更多 视频

技术专区