PIC中档单片机汇编指令详解(7)
2016-05-20 来源:eefocus
语法形式:GOTO m
操作数:m为11位立即数指定的目标地址
执行时间:2个指令周期
执行过程:
m→PC【10:0】
PCLATH【4:3】→PC【12:11】
状态标志影响:无
说明:程序无条件立即强行跳转到目的地址处继续执行。目的地址由本指令内含的11位地址码和特殊寄存器PCLATH中的【4:3】一起构成完整的13位地址。
指令范例:
ORG 0x000 ;伪指令指定程序的起始地址
GOTO Main ;程序跳转到标号指定的位置处继续执行
MOVLW W寄存器赋立即数
语法形式:MOVLW k
操作数:k为8位立即数
执行时间:一个指令周期
执行过程:k→W
状态标志影响:无
说明:该指令对W寄存器赋一个初值。任何其他数据寄存器如果要赋一个立即数值,必须通过W寄存器传送。
指令范例:
MOVLW 0x55 ;【W】=0x55
MOVWF Tmp ;【Tmp】=【W】=0x55
ADDLW W寄存器和8位立即数相加
语法形式:ADDLW k
操作数:k为8位立即数
执行时间:一个指令周期
执行过程:【W】+k→W
状态标志影响:Z DC C
说明:W寄存器的值和8位立即数相加,结果放入W寄存器内
指令范例:
MOVLW 0xAA ;W=0xAA
ADDLW 0x11 ;W=0xAA+0x11=0xBB
SUBLW 立即数减去W寄存器
语法形式:SUBLW k
操作数:k为8位立即数
执行时间:一个指令周期
执行过程:k-【W】→W
状态标志影响:Z DC C
说明:必须注意W寄存器在这条指令中是减数
如果k=W,相减结果为0,则Z=1
如果k>W,没有借位发生,则C=1
如果k 在PIC单片机内部这条减法指令的执行是先对W寄存器求补码,然后和被减数k相加,所以在判断是否有借位标志时要千万小心 指令范例: MOVLW 0x23 ;W=0x23 SUBLW 0x32 ;W=0x32-0x23=0x0f,k>W所以C=1 IORLW W寄存器和立即数做逻辑或操作 语法形式:IORLW k 操作数:k为8位立即数 执行时间:一个指令周期 执行过程:【W】|k→W 状态标志影响:Z 说明:W寄存器和8位立即数相或,结果放入W寄存器内。按照逻辑或有1出1的法则,此指令可以把W寄存器的任意位设置成数据1 指令范例: IORLW b‘00001111’ ;W寄存器低4位置1 ANDLW W寄存器和立即数做逻辑与操作 语法形式:ANDLW k 操作数:k为8位立即数 执行时间:一个指令周期 执行过程:【W】&k→W 状态标志影响:Z 说明:W寄存器和8位立即数相与,结果放入W寄存器内。按照逻辑与有0出0的法则,可以把W寄存器的任意位置清0 指令范例: ANDLW b‘00001111’ ;W寄存器高4位清0 XORLW W寄存器和立即数做逻辑异或操作 语法形式:XORLW k 操作数:k为8位立即数 执行时间:一个指令周期 执行过程:【W】^k→W 状态标志影响:Z 说明:W寄存器和8位立即数异或,结果放入W寄存器内。按照逻辑异或的法则,任何数和1异或,结果为其反码;任何数和其自身异或,结果为0。所以该指令可以把W寄存器的任意位数反转,或者判断W寄存器的内容是否为特定值 指令范例: 例1:任意数据按位取反 XORLW b‘11111111’ ;取W寄存器8位反码 例2:判断W寄存器内容是否为特定值 XORLW 0x34 ;判断W=0x34? BTFSC STATUS,Z ;W不等于0x34,则跳过下条指令 GOTO W34 ;W等于0x34,转去执行相关操作
- 基于PIC24在血糖仪上的应用分析
- 贸泽开售Microchip Technology PIC32CZ CA MCU 保护工业和汽车应用安全
- Microchip推出搭载硬件安全模块的PIC32CK 32位单片机, 轻松实现嵌入式安全功能
- Microchip推出集成微型FPGA的PIC16 微控制器,售价不到 50 美分
- Microchip 发布PIC16F13145系列MCU,促进可定制逻辑的新发展
- Microchip推出PIC18-Q24 系列单片机 为增强代码安全性设置新标准
- 基于AT45DB161B存储器和PIC16LC73B单片机实现微型压力测量装置设计
- 将DHT11与PIC16F877A连接进行温度和湿度的测量
- 贸泽备货Microchip PIC32CM Lx MCU 同时支持安全子系统和Arm TrustZone技术
- Microchip推出32位单片机PIC32CXMT系列产品