三、面向字节、常数与控制操作的指令 1传送立即数至工作寄存器W指令 指令格式:MOVLW k;k表示常数、立即数和标号 说明:MOVLW是Move Literal to w的缩写 实例:MOVL 0x1E;常数30送W 2I/O口控制寄存器TRIS设置指令 指令格式;TRISf 说明;TRIS f是Load TRIS Register的缩写。其功能是把工作寄存器W的内容送入I/O口控制寄存器f。当W=0时,置对应I/O口为输出;W=1,置I/O口为输入。 实例:MOVLW 0x00 ;把00H送入W TRIS RA ;置PIC RA口为输出 MOVLW 0xFF ;把FFH送入W TRIS RB ;置PIC RB口为输入 说明:这是PIC汇编语言中常用的几条指令,即设置某个I/O口(这里是RA口和RB口)为输入或输出的语句。可见,识读指令时,一应充分理解语句格式的功能,二应前后联系阅读。 3W寄存器内容送寄存器f(W内容保持不变)指令 指令格式:MOVWF f 说明:MOVWF是Move W to f的缩写 实例:MOVLW 0x0B;送0BH送W MOVWF 6 ;送W内容到RB口 说明:第一条指令0x0B(常数11)送工作寄存器W,第二条指令,把W内容常数11送到寄存器F6中,查表F6即为RB口,所以PORT_B(B口)=0BH=D11 4寄存器f传送指令 指令格式:MOVF f,d 说明:MOVF是Move f的缩写。F代表PIC中的某个寄存器。指令中的d规定:d=0时,f内容送W;d=1时,f内容送寄存器。 实例:MOVF 6,0 ;RB口内容送W MOVWF 8 ;RB口内容送f8 说明:第一条指令中的6代表寄存器f=6,查寄存器表f=6为RB口;0代表d=0,代表选择的目标为寄存器W。第二条指令中的8代表寄存器f=8。所以两条指令结果是把RB口的内容送f8。至于f8内容是多少?还应在汇编语言开始时附加指令,这里从略。 5空操作指令 指令格式:NOP 说明:NOP是英语No 计数器PC加1,所以占用一个机器周期。 实例:MOVLW 0xOF ;送OFH到W MOVWF PORT_B ;W内容写入B口 CPUNT2 ;计数2减1计数器2减1 结果不为零,跳转循环重 复执行第4条指令 (7) GOTO LOOP; (8) RETLW 0;子程序执行结束返回 说明:程序中的注释已分别对每条指令的功能作了说明,补充说明1当执行第(4)条加1指令结果为零时,就间跳转到执行第(6)条指令。2当执行第(6)条减1指令结果为零时,就间跳转到第(8)条子程序返回,整个延时指令才算完成。3计数器1或2代表PIC中某个寄存器,该寄存器由程序开始的伪指令赋值决定(关于伪指令今后将作专门介绍)。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』