各类命令助记符

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MCS-51的基本指令共111条;按功能分为5类:

(1)数据传送(29条)(2)算术操作(24条)

(3)逻辑操作(24条)(4)控制转移(17条)

(5)布尔变量操作(17条)

按指令所占的字节来分:(1) 单字节指令49条;

(2) 双字节指令46条;(3) 三字节指令16条。

数据传送指令(29条)

按指令的执行时间来分:(1) 1个机器周期(12个时钟振荡周期)指令64条;(2) 2个机器周期(24个时钟振荡周期)指令45条;

(3) 只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)。12MHz晶振:机器周期为1μs。

向累加器A的传送:MOV A, Rn ;(A)←(Rn)

向通用寄存器传送:MOV Rn, A ;(Rn)←(A)

向直接地址传送:MOV direct,A ;(direct)←(A)

间址传送:MOV @Ri,A ;((Ri))←(A)

入栈指令:PUSH direct ;(sp)←(sp)+1,

;((sp))←(direct)

出栈指令:POP direct ;(direct)←((sp)),

;(sp)←(sp)-1

累加器传送指令

字节交换指令:XCH A,Rn ;(A)↔(Rn)

半字节交换指令:XCHD A,@Ri ; (A0~3) ↔((Ri) 0~3)

累加器高4位与低4位数据互换:

SWAP A ;(A0~3) ↔(A4~7)

累加器与外部RAM的传送:

MOVX A,@Ri ;(A) ←((Ri))

累加器与程序存储器传送:MOVC A,@A+DPTR

目标地址传送指令:MOV DPTR,#data16

算术运算指令(24条)

加法指令:ADD A,Rn ;(A) ←(A)+(Rn)

带进位加法:ADDC A,Rn ;(A) ←(A)+(Rn)+(C)

加1指令:INC A ;(A) ←(A)+1

十进制调整指令:DA A ;

减法指令:带借位减法指令:SUBB A,Rn;(A) ←(A)-(Rn)-(C)

减1指令:DEC A ;(A) ←(A)-1

乘法指令:MUL AB;(BA) ←(A)*(B)

除法指令:DIV AB ;(A) ←(A)/(B)

; (B) ←(A)%(B)

单操作数逻辑运算指令

累加器A清零:CLR A ;(A) ←0

累加器A取反:CPL A ;(A) ←(A)

累加器A循环左移:RL A;

累加器A循环右移: RR A;

累加器A带进位循环左移:RLC A;

累加器A带进位循环右移:RRC A;

双操作数逻辑运算指令

逻辑“与”指令:ANL A, Rn ;(A) ←(A)&(Rn)

逻辑“或”指令:ORL A, Rn ;(A) ←(A)|(Rn)

“异或”指令:XRL A, Rn ;(A) ←(A)^(Rn)

控制转移指令(17条)

1无条件转移指令

调用指令

绝对调用(2K)ACALL addr11

;(pc) ←(pc+2)

;(sp) ←(sp)+1,((sp)) ←(pc0~7)

;(sp) ←(sp)+1,((sp)) ←(pc8~15)

;(pc0~10) ← addr0~10

;(pc11~15)不变

长调用(64K)LCALL addr16

;(pc) ←(pc)+3

;(sp) ← (sp)+1,((sp)) ←(pc0~7)

;(sp) ← (sp)+1,((sp)) ←(pc8~15)

;(pc) ← addr16

返回指令

子程序返回(ACALL和LCALL)

RET;(pc8~15) ←((sp)),(sp) ←(sp)-1;(pc0~7) ←((sp)),(sp) ←(sp)-1

中断程序返回

RETI;(pc8~15) ←((sp)),(sp) ←(sp)-1

;(pc0~7) ←((sp)),(sp) ←(sp)-1 ;开放中断逻辑

转移指令

绝对转移AJMP addr11

;(pc0~10) ← addr0~10;(pc11~15)不变

长转移:LJMP addr16;(pc) ← addr16

相对转移(短转移,双向)SJMP rel ;(pc) ←(pc)+rel

间接转移指令(散转指令)JMP @A+DPTR ;(pc)←(A)+(DPTR)

空操作指令:NOP ;(pc) ←(pc)+1

条件转移指令(1)判零转移指令

JZ rel;当(A)为0则(pc) ←(pc)+rel ;否则,顺序执行

JNZ rel;当(A)非0,则(pc) ←(pc)+rel;否则,顺序执行

比较转移指令(-128B~+127B)CJNE A,direct,rel

跳转循环指令(减1不为0转移指令):

DJNZ Rn,rel ;(Rn) ←(Rn)-1,

;若(Rn)非0,则(pc) ←(pc)+rel

;否则,顺序执行

DJNZ direct,rel

;(direct) ←(direct)-1,

;若(direct)非0,

则(pc) ←(pc)+rel

;否则,顺序执行

布尔处理器指令(17条)

位变量地址空间

片内低RAM,Bit地址范围:00H~7FH(128位)

片内高RAM,地址能被8整除的SFR中对应各位(11个):

80H~F7H

布尔数据传送指令:MOV C ,bit ;(C) ←(bit)

※C为进位标志位Cy(不影响PSW)

布尔状态控制

位清“0”指令CLR C ;(C) ← 0

位置“1”指令:SETB C ;(C) ← 1

位取反指令:CPL C ;(C) ← (C)

位逻辑运算

位逻辑“与”指令:ANL C,bit ;(C) ← (C)&(bit)

位逻辑“或”指令:ORL C,bit ;(C) ← (C)|(bit)

位条件转移指令:

判断C转移:J C rel;当(C)为1,则(pc) ←(pc)+rel;否则,顺序执行

JNC rel;当(C)为0,则(pc) ←(pc)+rel;否则,顺序执行

判断位变量转移指令:JB bit, rel;当(bit)为1,则(pc) ←(pc)+rel;

否则,顺序执行

JNB bit, rel;当(bit)为0,则(pc) ←(pc)+rel;否则,顺序执行

※pc+rel中,(pc)表示为当前的指令地址即:执行跳转指令后的

下一条指令地址

判断位变量转移并清0指令:JBC bit, rel ;当(bit)为1,则(bit)

←0,(pc) ←(pc)+rel ;否则,顺序执行

※可用于对SFR的bit检测和软件复位(TFX)

汇编语言语句的种类和格式:

程序段说明伪指令ORG ORG 1000H

汇编结束伪指令END [标号:] END

伪指令语句

等值伪指令EQU和DL DDR EQU 1020H(不可改)

数据说明伪指令DB和DW TAB DB 0, 4, 8, 16, 32

保留存储区说明伪指令:STA DS 10H

软件延时子程序

DELAY:MOV R2, #data ;指令周期数=1

DELAY1: DJNZ R2, DELAY1;指令周期数=2

RET

延时时间=1(第一条指令周期)+(R2)×2(周期数); 影响CPU

工作效率

延时范围:3~513个机器周期,由(R2)决定

有符号数X存于内部RAM的DATA单元,Y存于FUNC单元,按

以下要求编程实现给Y赋值。绘出程序框图。程序清单:

ORG 4000H

MOV A,DATA;取出X送A

JZ COMP ;若X=0则转移到COMP

JNB ACC.7,POSI ;若X>0则转移到POSI

MOV A,#0FFH;若X<0则A= -1

SJMP COMP ;转分支结构出口

POSI:MOV A,#01H;X>0时A=1

COMP:MOV FUNC,A;存函数Y值

HERE:SJMP HERH;结束

2重以上的循环,内外层分明,且不能交叉

例1、50ms延时程序(设系统为12M的晶振)

DELAY: MOV R7,#200

DELAY_1 :MOV R6,#123

NOP

DELAY_2: DJNZ R6,DELAY_2

DJNZ R7,DELAY_1

RET

计算:【(123*2+1+1)+2】*200=250*200us

例2、定时程序如下:

MOV R5,#TIME1

LOOP2: MOV R4,#TIME2

LOOP1: NOP

NOP

DJNZ R4,LOOP1

DJNZ R5,LOOP2

RET 该定时程序的执行时间为:其中T0为单片机的机器

周期

T=(((1+1+2)*TIME2+1+2)*TIME1+1)*T0

8051/8751最小应用系统(如图所示)

(1全部I/O口线开放(2内部存储器容量有限

(3)EA接高(4)P0、P2使用要注意

图6-2为用8031外接程序存储器构成的最小系统。

特点是:无内部ROM,需要构成三片最小系统,ALE下降沿锁存

地址底8位。

芯片选择方法:线选法和地址译码法。

8255A的3种工作方式:

方式0(基本输入/输出方式)数据输出有锁存,数据输入有缓

冲(无锁存)

方式1(选通输入/输出方式)A组包括A口和C口的高四位(PC7~

PC4),A口可由程序设定为输入口或输出口,C口的高四位则用

来作为输入/输出操作的控制和同步信号;B组包括B口和C口

的低四位(PC3~PC0),功能和A组相同。

方式2(双向I/O口方式)A口为8位双向I/O口,C口的PC7~

PC3用来作为输入输出的控制和同步信号。此时,B口可以工作

在方式0或方式1。

8255有两个控制字:方式控制字,置位/复位控制字

接口(Interface):计算机与外设的数据传送电路。

端口(Port):编程寻址的口寄存器,

编址方式:独立编址,统一编址

CPU与外设数据传送方式:直接、查询、中断、DMA

中断:计算机暂停正在执行的程序,去执行中断服务程序,服务

完成后回到原程序断开出继续执行。

CPU响应中断的条件:(1)有中断请求(2)中断请求没有被屏蔽(3)中

断是开放的或者是允许的(4)在现行指令结束后才响应中断

中断响应及中断期间应做的工作:

(1)关中断(2)保留断点(3)保护现场(4)给出中断,入口转入相应的

中断服务程序(5)恢复现场(6)开中断与返回

相关文档
最新文档