新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > MCS-51单片机指令系统概述 2

MCS-51单片机指令系统概述 2

作者:时间:2016-11-26来源:网络收藏
MCS-51逻辑运算及移位指令杭州电子元件邮购网地址:www.hpoo.net

逻辑运算和移位指令共有25条,有与、或、异或、求反、左右移位、清0等逻辑操作,有直接、寄存器和寄存器间址等寻址方式。这类指令一般不影响程序状态字(PSW)标志。

[1].循环移位指令(4条)
这4条指令的作用是将累加器中的内容循环左或右移一位,后两条指令是连同进位位CY一起移位。

RL A;累加器A中的内容左移一位
RR A;累加器A中的内容右移一位
RLC A;累加器A中的内容连同进位位CY左移一位
RRC A;累加器A中的内容连同进位位CY右移一位调频FM发射话筒制作套件

[2].累加器半字节交换指令(1条)
这条指令是将累加器中的内容高低半字节互换,这在上一节中内容已有介绍。

SWAP A; 累加器中的内容高低半字节互换

[3].求反指令(1条)
这条指令将累加器中的内容按位取反。

CPL A; 累加器中的内容按位取反

[4].清零指令(1条)
这条指令将累加器中的内容清0。

CLR A; 0→(A),累加器中的内容清0

本文引用地址:http://www.amcfsurvey.com/article/201611/321693.htm

电子元件邮购



[5].逻辑与操作指令(6条)
这组指令的作用是将两个单元中的内容执行逻辑与操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

ANL A,data;累加器A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器A中。
ANL data,#data;直接地址单元中的内容和立即数执行与逻辑操作。结果存在直接地址单元中。
ANL A,#data;累加器A的内容和立即数执行与逻辑操作。结果存在累加器A中。
ANL A,Rn;累加器A的内容和寄存器Rn中的内容执行与逻辑操作。结果存在累加器A中。

单片机编程器 HPOO


ANL data,A;直接地址单元中的内容和累加器A的内容执行与逻辑操作。结果存在直接地址单元中。
ANL A,@Ri;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行与逻辑操作。结果存在累加器A中。

[6].逻辑或操作指令(6条)
这组指令的作用是将两个单元中的内容执行逻辑或操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

ORL A,data;累加器A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器A中。
ORL data,#data;直接地址单元中的内容和立即数执行逻辑或操作。结果存在直接地址单元中。

调频FM发射话筒制作套件


ORL A,#data;累加器A的内容和立即数执行逻辑或操作。结果存在累加器A中。
ORL A,Rn;累加器A的内容和寄存器Rn中的内容执行逻辑或操作。结果存在累加器A中。
ORL data,A;直接地址单元中的内容和累加器A的内容执行逻辑或操作。结果存在直接地址单元中。
ORL A,@Ri;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器A中。

[7].逻辑异或操作指令(6条)
这组指令的作用是将两个单元中的内容执行逻辑异或操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

电子制作 HPOO



XRL A,data;累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器A中。
XRL data,#data;直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。
XRL A,#data;累加器A的内容和立即数执行逻辑异或操作。结果存在累加器A中。
XRL A,Rn;累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。结果存在累加器A中。
XRL data,A;直接地址单元中的内容和累加器A的内容执行逻辑异或操作。结果存在直接地址单元中。单片机学习 HPOO
XRL A,@Ri;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器A中。电子制作 HPOO

MCS-51控制转移指令电子制作 HPOO

控制转移指令用于控制程序的流向,所控制的范围即为程序存储器区间,MCS-51系列单片机的控制转移指令相对丰富,有可对64kB程序空间地址单元进行访问的长调用、长转移指令,也有可对2kB字节进行访问的绝对调用和绝对转移指令,还有在一页范围内短相对转移及其它无条件转移指令,这些指令的执行一般都不会对标志位有影响。

[1].无条件转移指令(4条)
这组指令执行完后,程序就会无条件转移到指令所指向的地址上去。长转移指令访问的程序存储器空间为16地址64kB,绝对转移指令访问的程序存储器空间为11位地址2kB空间。

LJMP addr16;addr16→(PC),给程序计数器赋予新值(16位地址)

AJMP addr11;(PC)+2→(PC),addr11→(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变单片机设计

SJMP rel;(PC)+ 2 + rel→(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值

JMP @A+DPTR;(A)+ (DPTR)→(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值

[2].条件转移指令(8条)
程序可利用这组丰富的指令根据当前的条件进行判断,看是否满足某种特定的条件,从而控制程序的转向。

JZ rel; A=0,(PC)+ 2 + rel→(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行

单片机学习 HPOO



JNZ rel; A≠0,(PC)+ 2 + rel→(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行

CJNE A, data, rel; A≠(data),(PC)+ 3 + rel→(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行

CJNE A, #data, rel; A≠#data,(PC)+ 3 + rel→(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

CJNE Rn, #data, rel; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行单片机学习 HPOO

CJNE @Ri, #data, rel; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

DJNZ Rn, rel; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)工作寄存器Rn减1不等于0,则转移到偏移量所指向的地址,否则程序往下执行

DJNZ data, rel; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)直接地址单元中的内容减1不等于0,则转移到偏移量所指向的地址,否则程序往下执行

[3].子程序调用指令(1条)
子程序是为了便于程序编写,减少那些需反复执行的程序占用多余的地址空间而引入的程序分支,从而有了主程序和子程序的概念,需要反复执行的一些程序,我们在编程时一般都把它们编写成子程序,当需要用它们时,就用一个调用命令使程序按调用的地址去执行,这就需要子程序的调用指令和返回指令。
电子制作 HPOO


LCALL addr16; 长调用指令,可在64kB空间调用子程序。此时(PC)+ 3→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr16→(PC),即分别从堆栈中弹出调用子程序时压入的返回地址

ACALL addr11; 绝对调用指令,可在2kB空间调用子程序,此时(PC)+ 2→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr11→(PC10-0)

RET; 子程序返回指令。此时(SP)→(PC15-8),(SP)- 1→(SP),(SP)→(PC7-0),(SP)- 1→(SP)

RETI; 中断返回指令,除具有RET功能外,还具有恢复中断逻辑的功能,需注意的是,RETI指令不能用RET代替杭州电子元件邮购网地址:www.hpoo.net

[4].空操作指令(1条)
这条指令将累加器中的内容清0。

NOP; 这条指令除了使PC加1,消耗一个机器周期外,没有执行任何操作。可用于短时间的延时

电子制作 HPOO

MCS-51布尔变量操作指令调频FM发射话筒制作套件

布尔处理功能是MCS-51系列单片机的一个重要特征,这是出于实际应用需要而设置的。布尔变量也即开关变量,它是以位(bit)为单位进行操作的。

在物理结构上,MCS-51单片机有一个布尔处理机,它以进位标志做为累加位,以内部RAM可寻址的128个为存储位。

既然有布尔处理机功能,所以也就有相应的布尔操作指令集,下面我们分别谈论。

[1].位传送指令(2条)
位传送指令就是可寻址位与累加位CY之间的传送,指令有两条。

MOV C,bit;bit→CY,某位数据送CY

MOV bit,C;CY→bit,CY数据送某位

推荐电子制作邮购网站:www.hpoo.net



[2].位置位复位指令(4条)
这些指令对CY及可寻址位进行置位或复位操作,共有四条指令。

CLR C; 0→CY,清CY

CLR bit; 0→bit,清某一位

SETB C; 1→CY,置位CY

SETB bit; 1→bit,置位某一位

[3].位运算指令(6条)调频FM发射话筒制作套件
位运算都是逻辑运算,有与、或、非三种指令,共六条。

ANL C,bit;(CY)∧(bit)→CY

ANL C,/bit;(CY)∧()→CY

ORL C,bit;(CY)∨(bit)→CY

ORL C,/bit;(CY)∧()→CY

CPL C;()→CY

杭州电子元件邮购网地址:www.hpoo.net



CPL bit;()→bir

[4].位控制转移指令(5)
位控制转移指令是以位的状态作为实现程序转移的判断条件,介绍如下:

JC rel; (CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。

JNC rel; (CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。

JB bit, rel; 位状态为1转移。
调频FM发射话筒制作套件


JNB bit, rel; 位状态为0转移。

JBC bit, rel; 位状态为1转移,并使该位清“0”。

后三条指令都是三字节指令,如果条件满足,(PC)+3+rel→PC,否则程序往下执行,(PC)+3→PC。



评论


相关推荐

技术专区

关闭