跳转到主要内容

指令集

ARM指令集—SWP指令

judy /

SWP和SWPB是ARM指令集中对存储单元的原子操作。即对存储单元的一次读和一次不可被切割。
SWP和SWPB分别完毕存储器和寄存器之间 一个字(32bit)和一个字节(8bit)的数据交换。

SWP指令主要是完毕ARM体系架构处理器的同步操作。在Linux操作系统中实现信号量的操作。可是此指令在ARMv6架构后就没有採用了,而是通过扩展的LDREX和STREX实现。本片文章主要介绍SWP的功能,对于LDREX和STREX以后再介绍。

SWP的指令格式例如以下:

SWP {}{B} Rd, Rm, [Rn]

当中Rd是目的寄存器,从存储器中读到的值存放于此寄存器中

Rm寄存器是操作数。会将此寄存器中的值存放于存储单元中

[Rn]是寄存器间接寻址,Rn保存的是某个存储单元的地址

MCS-51单片机布尔操作指令集

judy /

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

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

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

<strong>[1]. 位传送指令</strong>

位传送指令就是可寻址位与累加位CY之间的传送,指令有两条。

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

<strong>[2]. 位置位复位指令</strong>

这些指令对CY及可寻址位进行置位或复位操作,共有四条指令。

CLR C ; 0→CY,清CY

CLR bit ; 0→bit,清某一位

SETB C ; 1→CY,置位CY

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

<strong>[3]. 位运算指令</strong>