📄 the02.htm
字号:
格式: ADDWF
f,d</p>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="98" valign="top" class="lh15" > 指令码:</td>
<td width="70" valign="top" class="lh15"> 000111</td>
<td width="33" valign="top" class="lh15" > d</td>
<td width="56" valign="top" class="lh15" > fffff</td>
</tr>
</table>
<p class="lh15" > 指令周期: 1<br>
操作:
W+f→d<br>
影响状态位: C,DC,Z<br>
说明:
将f寄存器和w相加,结果存入f(d=1)或W(d=0)。<br>
例:
ADDWF 8,0
; F8+W→W</p>
<p class="lh15" >
─────────────────────────────────</p>
<p class="lh15" >
2、寄存器与指令</p>
<p class="lh15" >
格式: ANDWF
f,d</p>
<table border="1" cellspacing="0" cellpadding="0" >
<tr>
<td width="98" valign="top" class="lh15" > 指令码:</td>
<td width="70" valign="top" class="lh15" > 000101</td>
<td width="33" valign="top" class="lh15" > d</td>
<td width="56" valign="top" class="lh15"> fffff</td>
</tr>
</table>
<p class="lh15" >
指令周期: 1<br>
操作:
W∧f→d<br>
影响状态位: Z<br>
说明:
将f寄存器和w做逻辑与运算,结果存入f(d=1)或W(d=0)。<br>
例:
ANDWF 10,0
; F10∧W→W<br>
ANDWF 10,1
; F10∧W→F10</p>
<p class="lh15" >
─────────────────────────────────</p>
<p class="lh15" >
3、寄存器清零指令</p>
<p class="lh15" >
格式: CLRF
f</p>
<table border="1" cellspacing="0" cellpadding="0" >
<tr>
<td width="98" valign="top" class="lh15"> 指令码:</td>
<td width="77" valign="top" class="lh15"> 0000011</td>
<td width="49" valign="top" class="lh15" > fffff</td>
</tr>
</table>
<p class="lh15" >
指令周期: 1<br>
操作:
0→f ,1→z<br>
影响状态位:z<br>
说明:
将f寄存器清零,状态位Z将被置为1。<br>
例:
CLRF
8 ;
F8清为零(0→F8)</p>
<p class="lh15" >
─────────────────────────────────</p>
<p class="lh15" >
4、W清零指令</p>
<p class="lh15" >
格式: CLRW</p>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="98" valign="top" class="lh15" > 指令码:</td>
<td width="70" valign="top" class="lh15" > 000001</td>
<td width="33" valign="top" class="lh15"> 0</td>
<td width="56" valign="top" class="lh15"> 00000</td>
</tr>
</table>
<p class="lh15" >
指令周期: 1<br>
操作:
0→W,1→Z<br>
影响状态位: Z<br>
说明:
将W寄存器清零,状态位Z将被置为1。<br>
例:
CLRW
;W清为零,Z置为1</p>
<p class="lh15" >
─────────────────────────────────</p>
<p class="lh15" >
5、寄存器取反指令</p>
<p class="lh15" >
格式: COMF
f,d</p>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="98" valign="top" class="lh15" > 指令码:</td>
<td width="42" valign="top" class="lh15"> 00</td>
<td width="35" valign="top" class="lh15" > d</td>
<td width="49" valign="top" class="lh15" > fffff</td>
</tr>
</table>
<p class="lh15" >
指令周期: 1<br>
操作:
f→d<br>
影响状态位: Z<br>
说明:
将f寄存器内容做逻辑求反运算,结果存入f(d=1)或W(d=0)。<br>
例:
COMF
12,0 ; F12取反→F12<br>
COMF
12,1 ; F12取反→W</p>
<p > ─────────────────────────────────</p>
<p > 6、寄存器减1指令</p>
<p > 格式:
DECF f,d</p>
<table border="1" cellspacing="0" cellpadding="0" >
<tr>
<td width="98" valign="top"> 指令码:</td>
<td width="70" valign="top"> 000011</td>
<td width="33" valign="top"> d</td>
<td width="56" valign="top" > fffff</td>
</tr>
</table>
<p > 指令周期:
1<br>
操作:
f-1→d<br>
影响状态位: C,DC,Z<br>
说明:
f寄存器内容减1存入f(d=1)或W(d=0)。<br>
例:
DECF 15,1
; F15-1→F15<br>
DECF 15,0
; F15-1→W</p>
<p > ─────────────────────────────────</p>
<p > 7、寄存器减1,结果为零则跳指令</p>
<p > 格式:
DECFSZ f,d</p>
<table border="1" cellspacing="0" cellpadding="0" >
<tr>
<td width="98" valign="top" > 指令码:</td>
<td width="49" valign="top"> 0010</td>
<td width="54" valign="top"> 11df</td>
<td width="56" valign="top"> ffff</td>
</tr>
</table>
<p > 指令周期:
1或2(产生跳转时为2)</p>
<p > 操作:
f-1→d; 结果为零则跳(PC+1→PC)</p>
<p > 影响状态位:
无</p>
<p > 说明:
将f寄存器内容减1存入f(d=1)或W(d=0)。如果结果为0,则跳过</p>
<p >
下一条指令不执行。否则顺序执行下一条指令。</p>
<p > 例:
┌───DECFSZ 10,1
; F10-1→F10,如果F10为0</p>
<p >
F10=0 │ MOVLW
55H ; 则跳过MOVLW
55H指令</p>
<p >
└──→MOVF
12,0</p>
<p > ─────────────────────────────────</p>
<p > 8、寄存器加1指令</p>
<p > 格式:
INCF f,d</p>
<table border="1" cellspacing="0" cellpadding="0" >
<tr>
<td width="98" valign="top"> 指令码:</td>
<td width="70" valign="top"> 001010</td>
<td width="33" valign="top"> d</td>
<td width="56" valign="top"> fffff</td>
</tr>
</table>
<p > 指令周期:
1</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -