指令助记符、名称
51单片机常用汇编语言助记符英文全称

JZ(JumpifZero)结果为0则转移;
JNZ(JumpifNotZero)结果不为0则转移;
JC(JumpiftheCarryflagisset)有进位则转移;
JNC(JumpifNotCarry)无进位则转移;
JB(JumpiftheBitisset)位为1则转移;
ANL(ANDLogic)逻辑与;
XRL(Exclusive-ORLogic)逻辑异或;
CLR(Clear)清零;CPL(Complement)取反;
RL(Rotateleft)循环左移;
RLC(RotateLeftthroughttheCarryflag)带进位循环左移;
RR(RotateRight)循环右移;
XCH(Exchange)字节交换;
XCHD(Exchangelow-orderDigit)低半字节交换;
PUSH(PushontoStack)入栈;
POP(PopfromStack)出栈;
(2)算术运算类指令(8种助记符)
ADD(Addition)加法;
ADDC(AddwithCarry)带进位加法;
RRC(RotateRightthroughttheCarryflag)带进位循环右移;
SWAP(Swap)低4位与高4位交换;
(4)控制转移类指令(17种助记符)
ACALL(AbsolutesubroutineCall)子程序绝对调用;
LCALL(LongsubroutineCall)子程序长调用;
PUSHF---->pushflagPOPF---->popflag
PUSHD---->pushdflagPOPD---->popdflag
03-MIPS指令助记符表

令集(共31条)rt <- rs + (zero-extend)immediate ;其中 rt=$1js=$2 rt <- rs & (zero-extend)i mmedi ate ;其中 rt=$1js=$2 rt <- rs | (zero-extend)immedi ate ;其中 rt=$1js=$2 rt <- rs xor (zero-extend)i mmedi ate ;其 中 rt=$1,rs=$2 rt <- immediate*65536 ;将16<^即数 放到目标寄存器高16 位,目标寄存器的低16©填0rt <- memory[rs + (sign- exteiKl)immediate] ; rt=$1,rs=$2 memory[rs + (sign-extend)immediate] <- rt ; rt=$1,rs=$2 if (rs == rt) PC <- PC+4 + (sign- extend)immediate«2 if (rs != rt) PC <- PC+4 + (sign- extend)immediate«2 if (rs <(sign -extend)immediate) rt=1 else rt=O ; 其中 rs = $2 , rt=$1 if (rs <(zero-extend)i mmedi ate) rt=1 else rt=O ;其中 rs = $2, rt=$1 PC <- (PC+4)[3L28],address,0,0 ; address=10000/4 $31 <-PC+4 ; PC <- (PCM)[31 _28],address 旦 0;address=10000/4 immediate immediate if($2<10)$1=1 else000010 address 000011 address memory[$2+10] =$1注意:为MIPS16只有16个1過的寄存器.所以JAL 指令中$31改成S15,所有立即数均无需扩展,LUI 指令直接就是将立即数付始RTS 存既 immediate immediate immediate immediate immediate immediate immediate addiu $1,52,100 $1=$2+100 andi $1,$2,10 $1=$2 &10 andi $1=$2|10 andi $1=$2A 10 lw$1,10($2) sw$1,10($2) beq$1,$2,10 bne$1,$2,10 if($2<10)slti$1,$2,10goto 10000 $31<-PC+4;goto 10000$1=memory[$2+10]if($1 !=$2) gotoPC+4+40if($1==$2) gotoPC+4+40$1=100*65536。
基本逻辑指令及编程方法

X、Y、M、S、T、C
2、AND、ANI 指令
X002 X000 Y003 X003
T1 (a)
Y003 M101 Y004
0 LD X002 1 AND X000 2 OUT Y003 3 LD Y003 4 ANI X003 5 OUT M101 6 AND T1 7 OUT Y004
3、OR、ORI 指令
X004 X006
Y005
M102
Y005 X007 X010 M103
M103
M110
0
LD X004
1
OR X006
2
ORI M102
3
OUT Y005
4
LDI Y005
5
AND X007
6
OR M103
7
ANI X010
8
OR M110
9
OUT M103
4、边沿检出指令LDP、LDF、ANDP、ANDF、 ORP、ORF
❖ 指令的作用
➢ LDP/ANDP/ORP 取/与/或脉冲上升沿。
➢ LDF/ANDF/ORF 取/与/或脉冲下降沿。
❖ 指令的说明
➢ LDP、ANDP、ORP指令是进行上升检出的触点指令,仅在 指定位软元件的上升沿时(OFF→ON变化时)接通一个扫描 周期。
➢ LDF、ANDF、ORF指令是进行下降检出的触点指令,仅在指 定位软元件的下降沿时(ON→OFF变化时)接通一个扫描周 期。
❖ 指令的作用
➢ MPS(Push):进栈指令; ➢ MRD(Read):读栈指令; ➢ MPP(POP):出栈指令。 ❖ 指令的说明 ➢ MPS、MRD、MPP指令无编程元件。 ➢ MPS、MPP指令成对出现,可以嵌套。 ➢ MRD指令可有可无,也可有两个或两个以上。
各类命令助记符

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 ;指令周期数=1DELAY1: DJNZ R2, DELAY1;指令周期数=2RET延时时间=1(第一条指令周期)+(R2)×2(周期数); 影响CPU工作效率延时范围:3~513个机器周期,由(R2)决定有符号数X存于内部RAM的DATA单元,Y存于FUNC单元,按以下要求编程实现给Y赋值。
指令速记

3)@R0、@R1、@DPTR、SP表示寄存器间址变量。
4)DPTR+A、PC+A表示变址寻址的变量。
5)PC+rel(相对量)表示相对寻址变量。
记住指令的助记符,掌握不同寻址方式的指令操作数的表示方法,为我们记忆汇编指 令打下了基础。MCS-51指令虽多,但按功能可分为五类,
只要记住其中的一条,其余的也就记住了。如加、减法的十二条指令,与、或、非的十八 条指令,现列举如下。
ADD/ADDC/SUBB A,#data/direct/Rn/@Ri
ANL/ORL/XRL A,#data/direct/Rn/@Ri
ANL/ORL/XRL direct,#data/a
上述每一排指令,功能相似,其操作数都相同。其它的如加1(INC)、减1(DEC)指令也 可照此办理。
4口诀记忆法
对于有些指令,我们可以把相关的功能用精练的语言编成一句话来记忆。如PUSH direct和POP direct这两条指令。
初学者常常分不清堆栈SP的变化情况,为此编成这样一句话:(SP的内容)加1(direct的内 容)再入栈,(SP的内容)弹出(到direct单元)SP才减1。
交换 XCH-Exchange 加法 ADD-Addition
乘法 MUL-Multiplication 除法 DIV-Division
左环移 RL-Rotate left 进位左环移 RLC-Rotate
left carry
右环移 RR-Rotate right 进位右环移RRC-Rotate
CJNE @Rn,#data,rel CJNE @Ri,#data,rel
详解PLC编程跳转指令的使用方法

详解PLC编程跳转指令的使用方法条件跳转指令:指令名称,助记符,指令代码,程序步如下表:程序步可以是连续执行或者是脉冲执行,CJ执行的为3步,CJ(P)为1步。
指令格式:当我们按下X000后,程序跳转指令开始运行,程序所跳转的位置为程序指针所在的位置,也就是标号10,在这里我们要注意程序指针写在左母线的左边。
当我们启动跳转指令后,X001这段程序就会被跳过不执行。
当X0为ON时,被跳转CJ命令到标号之间的程序不子执行。
在跳转过程中如果Y、M,S被OUT、SET. (RS)T指令驱动使输入发生变化则仍保持跳转前的状态。
例如,通过X1驱动输出Y10后发生跳转,在跳转过程中即使X0变为ON,但输出Y10仍有效。
注意:1、对于T、C,如果跳转时(定时器)或计数器正发生动作,则此时立即中断计数或停止计时,直到跳转结束后继续进行计时或计数。
但是,正在动作的定时器T192~T199与高速计数器C235~ C255. 不管有无跳转仍旧维续工作。
2、功能指令在跳转时不执行,但PLSY、PLSR、PWW指令除外。
子程序调用与返回指令:指令名称,助记符,指令代码,程序步如下表:指令格式:图中FEND表示主程序结束,在FEND前面的我们称为主程序,在FEND后面的我们称为子程序。
SRET表示子程序结束,或者叫子程序返回。
我们要注意,在FEND与SRET之间的程序,我们称为第一个子程序,在第二个SRET之前的我们称为第二个子程序。
当我们按下X001的时候,指针调用到P11,程序开始从P11这个地方从上往下开始执行,当碰到第一个SRET的时候,程序又返回到主程序中,但是在这个程序中如果X002被接通,那么程序指针则调用到P12,程序开始从上到下运行,当碰到第二个SRET的时候,程序返回到P12这个地方,然后在碰到第一个SRET的时候,返回到主程序。
因为P12这个程序是嵌套在P11这个程序中的,所以我们要注意,在(PLC)中这种程序嵌套最多只能使用5级。
汇编指令符号大全

80X86 汇编指令符号大全+、-、*、/∶算术运算符。
&∶宏处理操作符。
宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个& 记号,宏汇编程序就能够用实在参数代替这个形式参数了。
$∶地址计数器的值——记录正在被汇编程序翻译的语句地址。
每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。
?∶操作数。
在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。
=∶等号伪指令——符号定义。
对符号进行定义和赋值,功能与EQU相似,但允许(重复)再定义。
:∶修改属性运算符(操作符)——段操作符。
用来临时给变量、标号或地址表达式指定一个段属性(不用缺省的段寄存器),自动生成一个“跨段前缀字节”。
注意,段寄存器CS和ES 不能被跨越,堆栈操作时也不能跨越SS。
;∶注释符号。
%∶特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII码嵌入到宏扩展中。
( )∶1.运算符——用来改变运算符的优先级别。
2.教材符号,表示括号内存储单元(或寄存器)的内容。
< >∶宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。
[ ]∶1.运算符。
方括号括起来的数是数组变量的下标或地址表达式。
带方括号的地址表达式必须遵循下列原则,①只有BX、BP、SI、DI这四个寄存器可在方括号内出现;②BX或BP 可单独出现在各方括号中,也可以与常数、SI或DI一起出现在方括号内,但不允许BX和BP出现在同一个方括号内;③SI和DI可以单独出现在各方括号内,也可以与常数、BP或BX一起出现在方括号内,但不允许SI和DI出现在同一个方括号内;④一个方括号内包含多个寄存器时,它们只能作加法运算;⑤若方括号内包含基址指针BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。
助记符

助记符号的记忆方法1表格列举法把44个指令助记符按功能分为五类,每类列表记忆。
此处从略,请读者自己总结。
2英文还原法单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。
例如:增量 INC-Incremect减量 DNC-Decrement短转移 SJMP-Short jump长转移 LJMP-Long jump比较转移 CJNE-Compare jump not equality绝对转移 AJMP-Absolute jump空操作 NOP-No operation交换 XCH-Exchange加法ADD-Addition乘法 MUL-Multiplication除法 DIV-Division左环移 RL-Rotate left进位左环移 RLC-Rotate left carry右环移 RR-Rotate right进位右环移RRC-Rotate right carryMCS-51系列单片机指令解读:18条以A字母开头的单片机的指令10条以C字母开头的单片机的指令8条以D字母开头的单片机的指令5条以I字母开头的单片机的指令8条以J字母开头的单片机的指令2条以L字母开头的单片机的指令24条以M字母开头的单片机的指令1条以N字母开头的单片机的指令8条以O字母开头的单片机的指令2条以字母P开头的单片机的指令6条以字母R开头的单片机的指令8条以字母S开头的单片机的指令18个以A字母开头的MCS-51系列单片机的指令1、ACALL addr11指令名称:绝对调用指令指令代码:指令功能:构造目的地址,进行子程序调用。
其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。
操作内容:PC←(PC)+2SP←(SP)+1(SP)←(PC)7~0SP←(SP)+1(SP)←(PC)15~8PC10~0←addrl0~0字节数: 2机器周期:2使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AND
X002
32
ANI
X003
14
ANI
X003
33
OUT
Y002
15
ORB
34
END
16
OUT
Y000
17
LDI
X001
18
ANI
X002
19
AND
X003
指令名称
助记符
指令代码
操作数
程序步
S•
D•
n1
n2
右移位
SFTR
FNC34
X、Y、M、S
Y、M、S
N2≤n1≤512
9步
左移位
SFTL
FNC35
输入电器
输入点
输出电器
输出点
启动按钮SB1
X0
电动机M接触器
Y0
停止按钮SB2
X1
电磁阀YV1
Y1
液位传感器H
X2
电磁阀YV2
Y2
液位传感器I
X3
电磁阀YV3
Y3
液位传感器L
X4
将栈顶的程序分支点状态弹出
语句步
指令
元件
0
LD
X000
1
SET
Y000
2
LD
X001
3
RET
Y000
4
LD
X002
5
SET
M0
6
LD
X003
7
RST
M0
8
LD
X004
9
SET
S0
11
LD
X005
12
RST
S0
14
LD
X006
15
RST
D0
18
LD
X000
19
OUT
T25 K10
22
LD
X007
23
RST
Y、M、S
7步
区间比较
ZCP
FNC11
S1•
S2•
S•
9步
K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z
符号、名称
梯形图符号
功能
STL
步进接点指令
从母线上引出的状态接点
步进返回指令
返回主母线
语句步
指令
元件
语句步
指令
元件
0
LD
X001
20
LD
X001
1
AND
X002
21
ANI
X002
3
AND
指令助记符、名称
符号
功能
MC (Master Control)
主控
公共串联触点的连接
MCR (Master Control Reset)主控复位
公共串联触点的清除
指令助记符、名称
符号
功能
MPS(Push)进栈
将梯形图程序分支的状态存入堆栈
MRD(Read)读栈
读取保存在栈顶中的分支点的状态
MPP(Pop)出栈
T25
语句步
指令
元件
0
LD
X000
1
OUT
Y000
2
LDI
X000
3
AND
X001
4ห้องสมุดไป่ตู้
OUT
M0
5
ANI
X002
6
OUT
Y001
7
LDI
X001
8
OR
X002
9
ORI
X003
10
OUT
Y002
11
END
指令名称
助记符
指令代码
操作数
程序步
S1•
S2•
D•
比较
CMP
FNC10
K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z
X003
22
ANI
X003
4
LDI
X001
23
ORB
5
AND
X002
24
LDI
X001
6
AND
X003
25
AND
X002
7
ORB
26
ANI
X003
8
LD
X001
27
ORB
9
ANI
X002
28
AND
M8013
10
AND
X003
29
OUT
Y001
11
ORB
30
LDI
X001
12
LD
X001
31
ANI
X002