PIC18F66K80扩展指令集:优化C语言编程的工具

需积分: 44 141 下载量 199 浏览量 更新于2024-08-10 收藏 9.9MB PDF 举报
"这篇文档详细介绍了PIC18F66K80系列微控制器的扩展指令集,这些指令集主要用于优化高级语言,尤其是C语言编写的可重入程序代码,适用于递归和软件堆栈操作。扩展指令集包含了8条额外的指令,增加了间接和变址寻址操作,并支持立即数变址寻址。这些指令主要用于动态分配和释放子程序的软件堆栈空间,函数指针调用,以及对软件堆栈指针和变量的操作。文档指出,扩展指令集默认开启,用户需在编程时设置XINST配置位来启用或禁用。" 扩展指令集为PIC18F66K80系列微控制器提供了更丰富的操作能力,包括8条新的指令,如ADDFSR、SUBFSR、ADDULNK、SUBULNK、CALLW、MOVSF、MOVSS和PUSHL。这些指令使用文件选择寄存器和偏移量进行操作,其中ADDFSR和SUBFSR有特例形式,用于在执行后自动返回。CALLW利用WREG调用子程序,而MOVSF和MOVSS用于移动数据。PUSHL则将立即数保存到FSR2,同时递减FSR2。SUBFSR和SUBULNK则分别从FSR和FSR2中减去立即数,SUBULNK执行后会返回。 扩展指令集的语法规定,当使用变址参数时,需要使用方括号包围,这在启用扩展指令集时对字节和位操作同样适用。MPASM汇编器会检查参数是否正确括起。虽然扩展指令集主要是为C语言优化,但汇编程序员也可能需要了解这些指令的语法,特别是查看编译器生成的代码时。 在编程器件时,用户必须注意XINST配置位的设置,以确定是否启用扩展指令集。如果不需要这些额外功能,可以将其关闭。扩展指令集和立即数变址寻址模式的设计目的是提高C语言编写应用程序的效率,尤其是涉及到递归和软件堆栈管理的代码。 值得注意的是,Microchip Technology Inc.提供的文档强调,中文版本仅供参考,关键信息仍需参考英文原版。此外,Microchip对其产品性能和应用信息不做任何明示或暗示的保证,并且不承担因使用这些信息产生的任何责任。对于生命维持和生命安全应用,使用者需自行承担风险,并保护Microchip免受任何法律责任。所有Microchip的商标和服务标记都在文档中有所提及。