PIC汇编指令

发布者:runaway2000最新更新时间:2020-03-14 来源: eefocus关键字:PIC  汇编指令  寄存器 手机看文章 扫描二维码
随时随地手机看文章

PIC18F系列
d:目标寄存器选择位  0表示结果保存至W寄存器中,1表示保存到文件寄存器f中。
a: 快速操作RAM位 0表示快速操作RAM内的RAM单元(BSR寄存器被忽略)。1表示存储区由BSR指定


面向字节的操作指令
1、ADDWF f,d,a;将f中的内容与W中的内容相加,存储在d提定的寄存器中.
2、ADDWFC f,d,a;将f中的内容与W中的内容带进位相加
3、ANDWF f,d,a;将f中的内容与W中的内容逻辑与运算
4、CLRF  f,a; 将f清零
5、COMF  f,d,a;将f取反
6、CPFSEQ f,a; 将f与w作比较,相等则跳过下一句
7、CPFSGT f,a; 将f与w作比较,大于则跳过
8、CPFSLT f,a; 将f与w作比较,小于则跳过
9、DECF f,d,a; f减1
10、DECFSZ f,d,a; f减1,为0则跳过
11、DCFSNZ f,d,a; f减1,非0则跳过
12、INCF f,d,a; f加1
13、INCFSZ f,d,a; f加1,为0则跳过
14、INFSNZ f,d,a; f加1,非0则跳过
15、IORWF f,d,a; 将f中的内容与W中的内容逻辑或运算
16、MOVF f,d,a; 传送f
17、MOVFF fs,fd; 将fs(源地址)传送给fd(目的地址)
18、MOVWF f,a;将w传给f
19、MULWF f,a;将w乘以f
20、NEGF f,a;将f取补
21、RLCF f,d,a;将F执行带进位循环左移
22、RLNCF f,d,a;将F执行不带进位循环左移
23、RRCF f,d,a;将F执行带进位循环右移
24、RRNCF f,d,a;将F执行不带进位循环左移
25、SETF f,a;将F全部置1
26、SUBFWB f,d,a;将W减去F(带借位)
27、SUBWF f,d,a;将f减去W
28、SUBWFB f,d,a;将f减去W(带借位)
29、SWAPF f,d,a;将f中的两个半字节进行交换
30、TSTFSZ f,a; 测试f,为0则跳过
31、XORWF f,d,a; W与f作逻辑异或运算

面向位的操作类指令
32、BCF f,b,a; 将F寄存器中的某位清零
33、BSF f,b,a; 将F寄存器中的某位置1
34、BTFSC f,b,a; F中的某位为0则跳过
35、BTFSS f,b,a; F中的某位为1则跳过
36、BTG f,b,a; F中的某位取反

控制操作类指令
37、BC n; 进位则跳转
38、BN n; 为负则跳转
39、BNC n;无进位则跳转
40、BNN n;不为负则跳转
41、BNOV n;不溢出则跳转
42、BNZ n;不为零则跳出
43、BOV n;溢出则跳转
44、BRA n;无条件跳转
45、BZ n;为零则跳转
46、CALL n,s;调用子程序
47、CLRWDT ;清看门狗
48、DAW ;将W进行十进制调整
49、GOTO n;跳转到地址
50、NOP ;空操作
51、POP ;出栈
52、PUSH;压栈
53、RCALL n;相对调用
54、RETFIE s;中断返回使能
55、RESET ;用软件使器件复位
56、RETLW k;返回时将立即数送入W
57、RETURN s;从子程序返回
58、SLEEP 进入待机模式

立即数操作指令
59、ADDLW k;W与立即数相加
60、ANDLW K;立即数与W作逻辑与运算
61、IORLW k;立即数与W作逻辑或运算
62、LFSR f,k; 将立即数送给FSR
63、MOVLB k;将立即数传送给BSR
64、MOVLW k;将立即数传送给W
65、MULLW k;立即数与W相乘
66、RETLW k;返回时将立即数与W相乘
67、SUBLW k;立即数减去W
68、XORLW k;立即数与WREG作逻辑异或运算

数据存储器---程序存储器操作类指令
69、TBLRD* ;表读
70、TBLRD* +;后增表读
71、TBLRD* -;后减表读
72、TBLRD+ *;预增表读
73、TBLWT*  ;表写
74、TBLWT* +;后增表写
75、TBLWT* -;后减表写
76、TBLWT+ *;预增表写


PIC16系列
1、ADDWF f,d;将f中的内容与W中的内容相加,存储在d提定的寄存器中.
2、ANDWF f,d;将f中的内容与W中的内容逻辑与运算
3、CLRF  f;将f清零
4、CLRW   ;将W清零
5、COMF  f,d;将f取反
6、DECF f,d; f减1
7、DECFSZ f,d; f减1,为0则跳过
8、INCF f,d; f加1
9、INCFSZ f,d; f加1,为0则跳过
10、IORWF f,d; 将f中的内容与W中的内容逻辑或运算
11、MOVF f,d; 传送f,d=0则传给W,d=1则传给自已
12、MOVWF f;将w传给f
13、RLF f,d;将F执行带进位循环左移
14、RRF f,d;将F执行带进位循环右移
15、SUBWF f,d;将f减去W
16、SWAPF f,d;将f中的两个半字节进行交换
17、XORWF f,d; W与f作逻辑异或运算

面向位的操作类指令
18、BCF f,b; 将F寄存器中的某位清零
19、BSF f,b; 将F寄存器中的某位置1
20、BTFSC f,b; F中的某位为0则跳过
21、BTFSS f,b; F中的某位为1则跳过

立即数操作指令
22、ADDLW k;W与立即数相加
23、ANDLW K;立即数与W作逻辑与运算
24、IORLW k;立即数与W作逻辑或运算
25、MOVLW k;将立即数传送给W
26、CALL k;调用子程序
27、GOTO k;跳转到地址
28、RETFIE ;中断返回使能
29、RETLW k;返回时将立即数送入W
30、RETURN ;从子程序返回
31、SLEEP 进入待机模式
32、SUBLW k;立即数减去W
33、XORLW k;立即数与WREG作逻辑异或运算
34、NOP

关键字:PIC  汇编指令  寄存器 引用地址:PIC汇编指令

上一篇:PIC之休眠问题
下一篇:PIC头文件——寄存器位地址定义代码解析

推荐阅读最新更新时间:2024-11-13 14:10

基于PIC单片机的24c02调试完成
适用于PIC系列,汇编、内存紧张的朋友用 SDA EQU 5 ;'OC' SCL EQU 4 ACKF EQU 0 EE_VCC EQU 2 EE_WP EQU 1 ;'H' DISABLE 'L'ENABLE DO EQU 7 TX_BUF EQU 0X30 BUF_IN EQU 0X31 EEPROM EQU 0X32 BIT_COUNT EQU 0X33 byte_count equ 0x34 ACK EQU 0X35 rom_buf1 equ 0x36 rom_buf2 equ 0x37 rom_buf3 equ 0x38 r
[单片机]
PIC32MX250F128B简单PWM输出
/********************************************************************* * * PIC32MX PWM demo * ********************************************************************* * FileName: pwm demo.c * Dependencies: plib.h * * Processor: PIC32MX * * Complier: MPLAB XC32 * MPLAB-X IDE * Company:
[单片机]
PIC单片机之中断程序
什么是中断程序呢? 形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程序方面来说 当CPU在执行一个程序的时候,突然产生了中断事件CPU就去执行中断程序了,当执行完成后CPU又回来执行原先的程序。 中断事件 什么是中断事件,就是引起中断的事件。对于单片机来说这些事件是多种多样的。比如 说一个按键按下,一定的时间到了,一串数据发送完毕,或接收完一个数据。 讲到中断不得不讲讲和中断相对的 查询。其实不管是按键按下 还是 时间到,还是数据发送完毕,这些事实上都可以用查询的方式办到。比如
[单片机]
mini2440之S3C2410 SDRAM寄存器初始化设置
板子是s3c2410,使用两片容量为32MB、位宽16bit的HY57V561620CT-H芯片拼成容量为64M、32bit的SDRAM存储器。根据2410datasheet,要使用SDRAM需配置13个寄存器,以下逐个来看: 1、 BWSCON:Bus width & wait status control register总线位宽和等待状态控制寄存器。 此寄存器用于配置BANK0 – BANK7的位宽和状态控制,每个BANK用4位来配置,分别是: ● ST(启动/禁止SDRAM的数据掩码引脚。对于SDRAM,此位置0;对于SRAM,此位置1) ● WS(是否使用存储器的WAIT信号,通常置0为不使用) ● DW(两位,设置位宽
[单片机]
寄存器地址映射
寄存器地址映射 寄存器地址映射关系 MDK5代码中的地址关系以及查找方法 GPIOB的端口地址 端口地址如何映射到具体寄存器的地址? 如上图所示,进行了一次强制类型转换,其实地址这个东西就是代表存储的地点,任何类型对他来说都一样,只不过地址的类型决定了它所指向的内存区域,比如:int型的指针他指挥指向地址指向的存储区域的int类型的数据。 寄存器地址与端口地址的关系 APB2外围设备总线的地址 外围设备基地址 综上所述 只有外围设备基地址是固定的,其他端口,外围设备总线,寄存器……等地址均由具体的地址偏移量层层递推而来(就如同此关系:外围设备基地址- 外围设备总线- 端口- 寄存器)。
[单片机]
<font color='red'>寄存器</font>地址映射
PIC16F877A矩阵键盘的用法
/******************************************************************************* Platform: PIC1687A Project : 实验16:矩阵式按键 Clock F : 外部4M Software: PICC Author : 竹林清风 comments: 学习使用矩阵式按键的用法 本例功能是按一下相应键,数码管显示相应的值 0-9;不带连发,不带组合,希望有兴趣的人帮忙完成 并共享 UP键按键计数 proteus仿真通过; **********************************************************
[单片机]
STM8 寄存器与官方库的组合使用
之前一直都是单独使用官方库或者寄存器,现在来一次集合 1)首先,将库提供的main文件下的这段代码删去,因为不再使用了。 2)然后,同样是在mian文件的最后,补充上 void assert_failed(uint8_t* file, uint32_t line){} 因为我们刚刚删除了该函数的函数体,而所有的库都会调用该函数来检测输入参数的正误,而现在我们就给它 一个空程序段,什么也不干。 3)好了,现在大家转到“stm8s_conf.h”文件,该文件的最后是如下: 而我们需要做的正是:将我们在mian上处理过的assert_failed(uint8_t* file, uint32_t line)函数放到另一个位置上
[单片机]
STM32 影子寄存器
01、概述 在定时器框图中,有个小细节,有些寄存器下有个阴影 有这些阴影的表示这些寄存器存在影子寄存器。 在图例中也有对影子寄存器的说明: 根据控制位,在发生U事件后,预装载寄存器内容转移到有效寄存器。这也就是对影子寄存器的说明。 有阴影的寄存器(AutoReloadRegister),表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preloadregister(预装载寄存器),另一个是程序员看不见的、但在操作中真正起作用的寄存器,称为shadowregister(影子寄存器)。 这里有3个寄存器名称 AutoReloadRegister。 preloadregister。 shadowre
[单片机]
STM32 影子<font color='red'>寄存器</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved