PIC汇编指令

来源:互联网 发布:hannah英文名好吗知乎 编辑:程序博客网 时间:2024/05/29 02:09

出处:http://blog.sina.com.cn/s/blog_a575eb9401016ig4.html


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


0 0