义隆单片机课堂
EM78P447S单片机入门与实作系列讲座 第3讲指令系统(中)

🏠 首页 《无线电》杂志 2002年 🔗 第4期 🔗 第34页 分类:电脑与单片机 🔗 大海创作室 🔗

(31) 逻辑“或”操作指令(3条)

语法规则 OR A,R

指令编码0100rrrrrr

操作内容 A∨R→A

影响标志 Z;零标志受影响。

功能说明 将A寄存器中的值和R寄存器中的值进行逻辑或,再存入A寄存器。

语法规则 OR R,A

指令编码01001rrrrrr

操作内容 A∨R→R

影响标志 Z;零标志受影响。

功能说明 将A寄存器中的值和R寄存器中的值进行逻辑或,再存入R寄存器。

语法规则 OR A,K

指令编码11001kkkkkkkk

操作内容 A∨K→A

影响标志 Z;零标志受影响。

功能说明 将A寄存器中的值和立即数K进行逻辑或,再存入A寄存器中。

(32) 子程序返回指令

语法规则 RET

指令编码01010

操作内容 [堆栈顶部]→PC

影响标志 无

功能说明 从子程序中返回,自动将栈顶的断点地址载入程序计数器PC。

(33) 中断返回指令

语法规则 RETI

指令编码01011

操作内容 [栈顶]→PC,1→

影响标志 无

功能说明 从中断服务子程序中返回,自动将堆栈最顶端的断点地址载入程序计数器PC中,同时将总中断使能位置1,放开所有的中断请求。

(34) 子程序返回并给A赋值指令

语法规则 RETL K

指令编码11100kkkkkkkk

操作内容 K→A,[栈顶]→PC

影响标志 无

功能说明 从子程序返回,自动将堆栈最顶端的断点地址载入程序计数器PC中,并同时将立即数载入A寄存器中。

(35) 带进位位循环左移送A指令

语法规则 RLCA R

指令编码011010rrrrrr

操作内容 R(n)→A(n+1),R(7)→C,C→A(0)

影响标志 C;进位标志受影响。

功能说明 将所指定的寄存器的内容,连同进位标志一起向左移1位,并将结果存于A寄存器。见图1。

图8
图8 🔍原图 (567×196)

(36) 带进位位循环左移指令

语法规则 RLC R

指令编码011011rrrrrr

操作内容 R(n)→R(n+1),

R(7)→C,C→R(0)

影响标志 C;进位标志受影响。

功能说明 将所指定的寄存器的内容,连同进位标志向左移1位,结果存入原寄存器。

(37) 带进位位循环右移送A指令

语法规则 RRCA R

指令编码01100rrrrrr

操作内容 R(n)→A(n-1),R(0)→C,C→A(7)

影响标志 C;进位标志受影响。

功能说明 R寄存器的内容连同C(进位标志)右移1位,并将结果存于A寄存器,见图2。

图11
图11 🔍原图 (425×150)

(38) 带进位位循环右移指令

语法规则 RRC R

指令编码011001rrrrrr

操作内容 R(n)→R(n-1),R(0)→C,C→R(7)

影响标志 C;进位标志被影响。

功能说明 所指定的寄存器的内容,连带着进位标志接向右移1位,见图3。

图13
图13 🔍原图 (567×111)

(39) 睡眠指令

语法规则 SLEP

指令编码011

操作内容 00H→WDT,00H→WDT的分频器,0→,1→

影响标志 和标志位受到影响。

功能说明 看门狗定时器及其分频器(如果分频器划归WDT使用)一起被清零;节电标志位被清零;看门狗超时溢出标志位被置1;系统时钟振荡器停振;CPU进入睡眠(节电)状态。

(40) 减法指令(3条)

语法规则 SUBA,R

指令编码010rrrrrr

操作内容 R-A→A

影响标志 Z,C,DC;零标志、进位标志和辅助进位标志都会受影响。

功能说明 将R寄存器中的值减去A寄存器中的值,再存到A寄存器中。

语法规则 SUBR,A

指令编码0101rrrrrr

操作内容 R-A→R

影响标志 Z,C,DC;零标志、进位标志和辅助进位标志都会受影响。

功能说明 将R寄存器中的值减去A寄存器中的值,再存回R寄存器中。

语法规则 SUBA,K

指令编码11101kkkkkkkk

操作内容 K-A→A

影响标志 Z,C,DC;零标志、进位标志和辅助进位标志都会受影响。

功能说明 将从立即数K的值中减去A寄存器的值,再存回A寄存器中。

(41) 半字节交换送A指令

语法规则 SWAPA R

指令编码01100rrrrrr

操作内容 R(3~0)→A(7~4)

R(7~4)→A(3~0)

影响标志 无

功能说明 将所选定的寄存器的高4位同低4位互换,并将结果存于A寄存器。见图4。

图2
图2 🔍原图 (567×111)

(42) 半字节交换指令

语法规则 SWAP R

指令编码011001rrrrrr

操作内容 R(3~0)←→R(7~4)

影响标志 无

功能说明 将所选定的寄存器的高4位同低4位互换。并将结果存回R寄存器。见图5。

图4
图4 🔍原图 (567×123)

(43) 查表指令

语法规则 TAB

指令编码010

操作内容 PC+A→PC,PC(9~8)不变

影响标志 Z,C,DC;零标志、进位标志和辅助进位标志都会受到PC低8位计算结果的影响。

功能说明 将累加器A的数据与程序计数器PC内的地址相加,结果存回PC,但是PC的比特9和比特8维持不变。本指令与RETL K指令配合,适用于查表程序的编制。

(44) 看门狗复位指令

语法规则 WDTC

指令编码0100

操作内容 00H→WDT,00H→WDT的分频器,0→,1→

影响标志 和标志位受到影响。

功能说明 看门狗定时器及其分频器(如果分频器划归WDT使用)一起被清零;节电标志位被置1;看门狗超时溢出标志位被置1。

(45) 逻辑“异或”指令(3条)

语法规则 XOR A,R

指令编码0110rrrrrr

操作内容 AR→A

影响标志 Z;零标志受影响。

功能说明 将A寄存器的内容和R寄存器的内容进行异或运算,并且将结果存入A寄存器中。

语法规则 XOR R,A

指令编码01101rrrrrr

操作内容 AR→R

影响标志 Z;零标志受影响。

功能说明 将A寄存器的内容和R寄存器的内容进行异或运算,并且将结果存入R寄存器中。

语法规则 XOR A,K

指令编码11011kkkkkkkk

操作内容 AK→A

影响标志 Z;零标志受影响。

功能说明 将A寄存器的值和立即数K值进行异或运算,并将结果存入A寄存器中。

在EM78P447S的指令系统中,设计了5种寻址方式:立即寻址、直接寻址、隐含寻址、间接寻址和比特寻址。下期笔者再为您详细讲解。

对本系列文章内容有何疑问,欢迎E-mail至yanglin...@163.net。

本期有奖问答的题目是:

1. 已知:累加器A = 0xF5。在分别执行以下3条指令之后,会产生什么结果?

⑴ AND A,0x0F;结果A = _________。

⑵ OR A, 0x0F;结果A = _________。

⑶ XOR A,0x0F;结果A = _________。

分析对比3种执行结果,在位操作方面(即针对某一位或某几位的置1、清0或取反操作),可以得到什么启发?

2. 已知:累加器和两个通用寄存器的内容分别为A = 0xAB、R8 = 0xEF和R9 = 0xCD。在执行以下程序片段之后,会产生什么结果?

SWAPA 0x08

SWAPA 0x09

SWAPA 0x08

结果:A = ?,R8 = ?,R9 =?

第2期有奖问答的获奖名单见下页。

(大海创作室)