指令助记符、名称

合集下载

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

51单片机常用汇编语言助记符英文全称
DJNZ(DecrementJumpifNotZero)减1后不为0则转移;
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指令助记符表

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。

基本逻辑指令及编程方法

基本逻辑指令及编程方法
❖ 编程元件 ➢ AND: ➢ ANI:
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赋值。

指令速记

指令速记
2)Rn(n=0-7)、A、B、CY、DPTR寄存器寻址变量。
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编程跳转指令的使用方法

详解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。

指令系统中各种助记符的英文全名

指令系统中各种助记符的英文全名

我现将指令系统中各种助记符的英文全名写出来,各种助记符的记忆就会变得很简单o(∩_∩)o...在这之前,先说一下寄存器:数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.BH&BL=BX(base):基址寄存器,常用于地址索引;CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&DL=DX(data):数据寄存器,常用于数据传递。

他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。

这2组8位寄存器可以分别寻址,并单独使用。

另一组是指针寄存器和变址寄存器,包括:SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。

指令指针IP(Instruction Pointer)标志寄存器FR(Flag Register)OF(overflow flag)DF(direction flag)CF(carrier flag)PF(parity flag)AF(auxiliary flag)ZF(zero flag)SF(sign flag)IF(interrupt flag)TF(trap flag)段寄存器(Segment Register)为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。

单片机指令助记符及含义

单片机指令助记符及含义

(指令中的符号标识)Rn工作寄存器R0-R7Ri工作寄存器R0和R1@Ri间接寻址的8位RAM单元地址(00H-FFH)#data88位常数#data1616位常数addr1616位目标地址,能转移或调用到64KROM的任何地方addr1111位目标地址,在下条指令的2K范围内转移或调用Rel8位偏移量,用于SJMP和所有条件转移指令,范围-128~+127 Bit片内RAM中的可寻址位和SFR的可寻址位Direct直接地址,范围片内RAM单元(00H-7FH)和80H-FFH$指本条指令的起始位置指令序号助记符指令功能字节周期对标志位的影响P OV AC CY8位立即数传送指令1MOV A,#data data→A立即数传送到累加器211000 2MOV diret,#data data→direct立即数传送到直接地址320000 3MOV@Ri,#data data→(Ri)立即数传送到间接RAM210000 4MOV Rn,#data data→Rn累加器传送到直接地址21000016位立即数传送指令5MOV DPTR,#data16data16→DPTR16位常数加载到数据指针320000内部RAM单元之间的数据传送指令6MOV direct2,direct1(direct1)→direct2直接地址传送到直接地址320000 7MOV direct,@Ri((Ri))→direct间接RAM传送到直接地址220000 8MOV direct,Rn(Rn)→direct寄存器传送到直接地址220000 9MOV@Ri,direct(direct)→(Ri)直接地址传送到间接RAM220000 10MOV Rn,direct(direct)→Rn直接地址传送到寄存器220000通过累加器的数据传送指令11MOV A,direct(direct)→A直接地址传送到累加器210000 12MOV A,@Ri((Ri))→A累加器传送到外部RAM(8地址)110000 13MOV A,Rn(Rn)→A寄存器传送到累加器110000 14MOV direct,A(A)→direct累加器传送到直接地址210000 15MOV@Ri,A(A)→(Ri)直接地址传送到直接地址110000 16MOV Rn,A(A)→Rn累加器传送到寄存器110000Ri作间址寄存器的外部RAM单元读/写指令17MOVX A,@Ri((Ri))→A外部RAM(8地址)传送到累加器120000 18MOVX@Ri,A(A)→(Ri)累加器传送到外部RAM(8地址)120000DPTR作间址寄存器的外部RAM单元读/写指令19MOVX A,@DPTR((DPTR))→A外部RAM(16地址)传送到累加器120000 20MOVX@DPTR,A(A)→(DPTR)累加器传送到外部RAM(16地址)120000程序存储器读指令组21MOVC A,@A+DPTR((A)+(DPTR))→A代码字节传送到累加器121000 22MOVC A,@A+PC((A)+(PC))→A代码字节传送到累加器121000整字节交换指令23XCH A,Rn(Rn)↔(A)寄存器和累加器交换111000 24XCH A,direct(direct)↔(A)直接地址和累加器交换211000 25XCH A,@Ri((Ri))↔(A)间接RAM和累加器交换111000半字节交换指令26XCHD A,@Ri((Ri))3~0↔(A)3~0间接RAM和累加器交换低4位字节111000累加器高低半字节交换指令27SWAP A(A)3~0↔(A)7~4累加器高、低4位交换110000堆栈操作指令组28PUSH direct(SP)+1→SP,(direct)→(SP)直接地址压入堆栈220000 29POP direct((SP))→direct,(SP)-1→SP直接地址弹出堆栈220000加法指令组30ADD A,#data(A)+data→A立即数与累加器求和211111 31ADD A,direct(A)+(direct)→A直接地址与累加器求和211111 32ADD A,@Ri(A)+((Ri))→A间接RAM与累加器求和111111 33ADD A,Rn(A)+(Rn)→A寄存器与累加器求和111111带进位加法指令组34ADDC A,#data(A)+data+(CY)→A立即数与累加器求和(带进位)211111 35ADDC A,direct(A)+(direct)+(CY)→A直接地址与累加器求和(带进位)211111 36ADDC A,@Ri(A)+((Ri))+(CY)→A间接RAM与累加器求和(带进位)111111 37ADDC A,Rn(A)+(Rn)+(CY)→A寄存器与累加器求和(带进位)111111带借位减法指令组38SUBB A,#data(A)-data-(CY)→A累加器减去立即数(带借位)211111 39SUBB A,direct(A)-(direct)-(CY)→A累加器减去直接地址(带借位)211111 40SUBB A,@Ri(A)-((Ri))-(CY)→A累加器减去间接RAM(带借位)111111 41SUBB A,Rn(A)-(Rn)-(CY)→A累加器减去寄存器(带借位)111111加1指令组42INC A(A)+1→A累加器加1111000 43INC direct(direct)+1→direct直接地址加1210000 44INC@Ri((Ri))+1→(Ri)间接RAM加1110000 45INC Rn(Rn)+1→Rn寄存器加1110000 46INC DPTR(DPTR)+1→DPTR数据指针加1120000减1指令组47DEC A(A)-1→A累加器减1111000 48DEC direct(direct)-1→direct直接地址减1210000 49DEC@Ri((Ri))-1→(Ri)间接RAM减1110000 50DEC Rn(Rn)-1→Rn寄存器减1110000乘法指令51MUL AB(A)×(B)→BA累加器和B寄存器相乘141101除法指令52DIV AB(A)/(B)→A……B累加器除以B寄存器141111十进制调整指令53DA A BCD码加减运算结果修正累加器十进制调整111011逻辑“与”运算指令组54ANL direct,A(direct)^(A)→direct累加器“与”到直接地址210000 55ANL direct,#data(direct)^data→direct立即数“与”到直接地址320000 56ANL A,#data(A)^data→A立即数“与”到累加器210000 57ANL A,direct(A)^(direct)→A直接地址“与”到累加器210000 58ANL A,@Ri(A)^((Ri))→A间接RAM“与”到累加器110000 59ANL A,Rn(A)^(Rn)→A寄存器“与”到累加器111000逻辑“或”运算指令组60ORL direct,A(direct)U(A)→direct累加器“或”到直接地址210000 61ORL direct,#data(direct)Udata→direct立即数“或”到直接地址320000 62ORL A,#data(A)Udata→A立即数“或”到累加器211000 63ORL A,direct(A)U(direct)→A直接地址“或”到累加器211000 64ORL A,@Ri(A)U((Ri))→A间接RAM“或”到累加器111000 65ORL A,Rn(A)U(Rn)→A寄存器“或”到累加器111000逻辑“异或”运算指令组66XRL direct,A(direct)○+(A)→direct累加器“异或”到直接地址220000 67XRL direct,#data(direct)○+data→direct立即数“异或”到直接地址320000 68XRL A,#data(A)○+data→A立即数“异或”到累加器211000 69XRL A,direct(A)○+(direct)→A直接地址“异或”到累加器211000 70XRL A,@Ri(A)○+((Ri))→A间接RAM“异或”到累加器111000 71XRL A,Rn(A)○+(Rn)→A寄存器“异或”到累加器111000累加器清072CLR A0→A累加器清零111000累加器取反73CPL A(A)→A累加器求反110000移位指令组74RL A An→An+1,A7→A0累加器循环左移110000 75RR A An+1→An,A0→A7累加器循环右移110000 76RLC A An→An+1,A7→CY,CY→A0带进位累加器循环左移110000 77RRC A An+1→An,CY→A7,A0→CY带进位累加器循环右移111001长转移指令64KB78LJMP addr16addr16→PC无条件长转移320000绝对转移指令2KB79AJMP addr11(PC)+2→PC,addr11→PC10~0无条件绝对转移220000短转移指令256B80SJMP rel(PC)+2→PC,(PC)+rel→PC无条件相对转移220000变址寻址转移指令81JMP@A+DPTR(A)+(DPTR)→PC相对DPTR的无条件间接转移120000累加器判零转移指令82JZ rel若(A)=0,则(PC)+2+rel→PC若(A)≠0,则(PC)+2→PC累加器为0则转移220000 83JNZ rel若(A)≠0,则(PC)+2+rel→PC若(A)=0,则(PC)+2→PC累加器为1则转移220000数值比较转移指令84CJNE A,#data,rel(A)=data,则(PC)+3→PC,0→CY(A)>data,(PC)+3+rel→PC,0→CY(A)<data,(PC)+3+rel→PC,1→CY比较立即数和累加器,不相等转移320000 85CJNE A,direct,rel(A)=(direct),则(PC)+3→PC,0→CY(A)>(direct),(PC)+3+rel→PC,0→CY(A)<(direct),(PC)+3+rel→PC,1→CY比较直接地址和累加器,不相等转移320000数值比较转移指令86CJNE Rn,#data,rel(Rn)=data,则(PC)+3→PC,0→CY(Rn)>data,(PC)+3+rel→PC,0→CY(Rn)<data,(PC)+3+rel→PC,1→CY比较寄存器和立即数,不相等转移320000 87CJNE@Ri,#data,rel((Ri))=data,则(PC)+3→PC,0→CY((Ri))>data,(PC)+3+rel→PC,0→CY((Ri))<data,(PC)+3+rel→PC,1→CY比较立即数和间接RAM,不相等转移320000减1条件转移指令88DJNZ Rn,rel(Rn)-1→Rn若(Rn)≠0,则(PC)+2+rel→PC若(Rn)=0,则(PC)+2l→PC寄存器减1,不为0则转移220000 89DJNZ direct,rel(direct)-1→direct若(direct)≠0,则(PC)+2+rel→PC若(direct)=0,则(PC)+2→PC直接地址减1,不为0则转移320000绝对调用指令90ACALL addr11(PC)+2→PC(SP)+1→SP,(PC)7~0→(SP)(SP)+1→SP,(PC)15~8→(SP)addr11→PC10~0绝对调用子程序220000长调用指令91LCALL addr16(PC)+3→PC(SP)+1→SP,(PC)7~0→(SP)(SP)+1→SP,(PC)15~8→(SP)addr16→PC10~0长调用子程序320000返回指令92RET子程序返回((SP))→PC15~8,(SP)-1→SP((SP))→PC7~0,(SP)-1→SP从子程序返回120000 93RETI中断服务子程序返回((SP))→PC15~8,(SP)-1→SP((SP))→PC7~0,(SP)-1→SP从中断服务子程序返回120000空操作指令94NOP(PC)+1→PC空操作,用于短暂延时110000位传送指令组95MOV C,bit(bit)→CY直接寻址位传送到进位位210001 96MOV bit,C(CY)→(bit)进位位位传送到直接寻址220000位置1指令组97SETB C1→CY置位进位位110001 98SETB bit1→bit置位直接寻址位210000位清0指令组99CLR C0→CY清进位位110001 100CLR bit0→bit清直接寻址位210000位逻辑“与”运算101ANL C,bit(CY)^(bit)→CY直接寻址位“与”到进位位220001 102ANL C,/bit(CY)^(/bit)→CY直接寻址位的反码“与”到进位位220001位逻辑“或”运算103ORL C,bit(CY)U(bit)→CY直接寻址位“或”到进位位220001 104ORL C,/bit(CY)U(/bit)→CY直接寻址位的反码“或”到进位位220001位取反105CPL C(/CY)→CY取反进位位110001 106CPL bit(/bit)→(bit)取反直接寻址位210001以C状态为条件的转移指令107JC rel若(CY)=1,则(PC)+2+rel→PC若(CY)≠1,则(PC)+2→PC如果进位位为1则转移220000 108JNC rel若(CY)≠1,则(PC)+2+rel→PC若(CY)=1,则(PC)+2→PC如果进位位为0则转移220000以位状态为条件的转移指令109JB bit,rel若(bit)=1,则(PC)+3+rel→PC若(bit)≠1,则(PC)+3→PC如果直接寻址位为1则转移320000 110JNB bit,rel若(bit)=0,则(PC)+3+rel→PC若(bit)≠0,则(PC)+3→PC如果直接寻址位为0则转移320000 111JBC bit,rel若(bit)=1,则(PC)+3+rel→PC,0→bit若(bit)≠1,则(PC)+3→PC直接寻址位为1则转移并清除该位320000助记符指令说明字节数周期数(数据传递类指令)MOV A,Rn寄存器传送到累加器11 MOV A,direct直接地址传送到累加器21 MOV A,@Ri累加器传送到外部RAM(8地址)11 MOV A,#data立即数传送到累加器21 MOV Rn,A累加器传送到寄存器11 MOV Rn,direct直接地址传送到寄存器22 MOV Rn,#data累加器传送到直接地址21 MOV direct,Rn寄存器传送到直接地址21 MOV direct,direct直接地址传送到直接地址32 MOV direct,A累加器传送到直接地址21 MOV direct,@Ri间接RAM传送到直接地址22 MOV direct,#data立即数传送到直接地址32 MOV@Ri,A直接地址传送到直接地址12 MOV@Ri,direct直接地址传送到间接RAM21 MOV@Ri,#data立即数传送到间接RAM22 MOV DPTR,#data1616位常数加载到数据指针31 MOVC A,@A+DPTR代码字节传送到累加器12 MOVC A,@A+PC代码字节传送到累加器12 MOVX A,@Ri外部RAM(8地址)传送到累加器12 MOVX A,@DPTR外部RAM(16地址)传送到累加器12 MOVX@Ri,A累加器传送到外部RAM(8地址)12 MOVX@DPTR,A累加器传送到外部RAM(16地址)12 PUSH direct直接地址压入堆栈22POP direct直接地址弹出堆栈22 XCH A,Rn寄存器和累加器交换11 XCH A,direct直接地址和累加器交换21 XCH A,@Ri间接RAM和累加器交换11 XCHD A,@Ri间接RAM和累加器交换低4位字节11(算术运算类指令)INC A累加器加111 INC Rn寄存器加111 INC direct直接地址加121 INC@Ri间接RAM加111 INC DPTR数据指针加112 DEC A累加器减111 DEC Rn寄存器减111 DEC direct直接地址减122 DEC@Ri间接RAM减111 MUL AB累加器和B寄存器相乘14 DIV AB累加器除以B寄存器14 DA A累加器十进制调整11 ADD A,Rn寄存器与累加器求和11 ADD A,direct直接地址与累加器求和21 ADD A,@Ri间接RAM与累加器求和11 ADD A,#data立即数与累加器求和21 ADDC A,Rn寄存器与累加器求和(带进位)11 ADDC A,direct直接地址与累加器求和(带进位)21 ADDC A,@Ri间接RAM与累加器求和(带进位)11 ADDC A,#data立即数与累加器求和(带进位)21 SUBB A,Rn累加器减去寄存器(带借位)11SUBB A,direct累加器减去直接地址(带借位)21 SUBB A,@Ri累加器减去间接RAM(带借位)11 SUBB A,#data累加器减去立即数(带借位)21(逻辑运算类指令)ANL A,Rn寄存器“与”到累加器11 ANL A,direct直接地址“与”到累加器21 ANL A,@Ri间接RAM“与”到累加器11 ANL A,#data立即数“与”到累加器21 ANL direct,A累加器“与”到直接地址21 ANL direct,#data立即数“与”到直接地址32 ORL A,Rn寄存器“或”到累加器12 ORL A,direct直接地址“或”到累加器21 ORL A,@Ri间接RAM“或”到累加器11 ORL A,#data立即数“或”到累加器21 ORL direct,A累加器“或”到直接地址21 ORL direct,#data立即数“或”到直接地址31 XRL A,Rn寄存器“异或”到累加器12 XRL A,direct直接地址“异或”到累加器21 XRL A,@Ri间接RAM“异或”到累加器11 XRL A,#data立即数“异或”到累加器21 XRL direct,A累加器“异或”到直接地址21 XRL direct,#data立即数“异或”到直接地址31 CLR A累加器清零12 CPL A累加器求反11 RL A累加器循环左移11 RLC A带进位累加器循环左移11 RR A累加器循环右移11 RRC A带进位累加器循环右移11SWAP A累加器高、低4位交换11(控制转移类指令)JMP@A+DPTR相对DPTR的无条件间接转移12 JZ rel累加器为0则转移22 JNZ rel累加器为1则转移22 CJNE A,direct,rel比较直接地址和累加器,不相等转移32 CJNE A,#data,rel比较立即数和累加器,不相等转移32 CJNE Rn,#data,rel比较寄存器和立即数,不相等转移22 CJNE@Ri,#data,rel比较立即数和间接RAM,不相等转移32 DJNZ Rn,rel寄存器减1,不为0则转移32 DJNZ direct,rel直接地址减1,不为0则转移32 NOP空操作,用于短暂延时11 ACALL add11绝对调用子程序22 LCALL add16长调用子程序32 RET从子程序返回12 RETI从中断服务子程序返回12 AJMP add11无条件绝对转移22 LJMP add16无条件长转移32 SJMP rel无条件相对转移22(布尔指令)CLR C清进位位11 CLR bit清直接寻址位21 SETB C置位进位位11 SETB bit置位直接寻址位21 CPL C取反进位位11 CPL bit取反直接寻址位21 ANL C,bit直接寻址位“与”到进位位22 ANL C,/bit直接寻址位的反码“与”到进位位22ORL C,bit直接寻址位“或”到进位位22 ORL C,/bit直接寻址位的反码“或”到进位位22 MOV C,bit直接寻址位传送到进位位21 MOV bit,C进位位位传送到直接寻址22JC rel如果进位位为1则转移22 JNC rel如果进位位为0则转移22JB bit,rel如果直接寻址位为1则转移32 JNB bit,rel如果直接寻址位为0则转移32 JBC bit,rel直接寻址位为1则转移并清除该位22(伪指令)ORG指明程序的开始位置DB定义数据表DW定义16位的地址表EQU给一个表达式或一个字符串起名DATA给一个8位的内部RAM起名XDATA给一个8位的外部RAM起名BIT给一个可位寻址的位单元起名END指出源程序到此为止(指令中的符号标识)Rn工作寄存器R0-R7Ri工作寄存器R0和R1@Ri间接寻址的8位RAM单元地址(00H-FFH)#data88位常数#data1616位常数addr1616位目标地址,能转移或调用到64KROM的任何地方addr1111位目标地址,在下条指令的2K范围内转移或调用Rel 8位偏移量,用于SJMP和所有条件转移指令,范围-128~+127Bit片内RAM中的可寻址位和SFR的可寻址位Direct直接地址,范围片内RAM单元(00H-7FH)和80H-FFH $指本条指令的起始位置。

指令助记符

指令助记符

汇编语言操作码助记符共44个,寻址方式七种:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。

可组合111条指令。

数据传送类助记符8个MOV : move 对内部RAM和SFR之间的数据传送MOVC: move code 读取ROM的数据传送MOVX: move external RAM 对外部RAM的传送XCH: exchange 字节交换XCHD: exchange low-order digit 低半字节交换SWAP: A中低4位与高4位互换PUSH: push into stack入栈POP: pop from stack 出栈算术运算操作码助记符(8个)ADD : addition 加法ADDC: add with carry 带进位加法SUBB: subtract with borrow 带借位减法DA: decimal adjust 十进制调整INC: increment 加1DEC: decrement 减1MUL: multiplication ,multiply 乘法DIV : division ,divide 除法逻辑运算和移位操作码助记符(10个)ANL : and logic 与逻辑ORL : or logic 或逻辑XRL : exclusive-or logic 异或逻辑CLR : clear 清0CPL : complement 取反RL: rotate left 左移RLC : rotate left throught the carry flag带进位左移RR: rotate right 右移RRC : rotate right throught the carry flag 带进位右移NOP: no operation 空操作控制转移类操作码助记符(12个)(一)无条件转移(4个)LJMP : LONG JUMP 长跳转AJMP : Absolute jump 绝对转移SJMP : short jump 短转移JMP :jump 转移(二)调用(2个)LCALL : long subroutine call 长调用SCALL : short subroutine call 短调用(三)返回(2个)RET : return from subroutine 子程序返回RETI : return from interruption 中断子程序返回(四)条件转移)(4个)(1)判零转移JZ: jump if zero 结果为0转移JNZ : jump if not zero 结果不为0转移(2 )比较转移CJNE: compare jump if not equal 比较不相等转移(3 )循环转移DJNZ: decrement jump if not zero 结果不为零转移位操作码助记符(11个实质为6 个)(一)数据传送MOV(二)位状态控制(1个)CLRSETB : SET BITCPL(三)位逻辑运算ANLORL(四)布尔条件转移(5个)JC : jump if the carry flag is set 有进位则转移JNC:jump if not carry 无进位则转移JB:jump if the bit is set 位为1则转移JNB:jump if the bit is not set 位为0则转移JBC:jump if the bit is set and clear the bit 位为1则转移,并清除该位。

指令助记符的名词解释

指令助记符的名词解释

指令助记符的名词解释指令助记符(Mnemonic)是用于帮助记忆计算机指令的符号或助记词汇。

它们在计算机编程和操作系统等领域中被广泛使用,使得复杂的指令序列更易于记忆和理解。

在本文中,我将探讨指令助记符的定义、作用以及在实际应用中的一些重要示例。

指令助记符是一种用于简化机器码编写过程的工具。

与一长串二进制代码相比,指令助记符往往使用短小的英文字母、数字或符号表示不同的操作或功能。

这些符号不仅方便程序员记忆和书写代码,还能使代码更易于读懂和审视。

当然,这些助记符并不是程序在计算机上直接执行的指令,而是需要经过编译或汇编过程转换为机器码才能被计算机执行。

指令助记符的作用不仅仅限于简化编码过程,它还能提高代码的可读性和可维护性。

使用助记符编写的代码通常更具有描述性,能够清晰地表达所需的操作,并对程序员友好。

此外,指令助记符还能够促进编程语言的标准化和统一,使得不同的开发者能够更轻松地交流和理解彼此的代码。

在计算机科学中,一些著名的指令助记符被广泛应用于不同的编程语言和操作系统中。

比如,在汇编语言中,常见的指令助记符包括MOV、ADD、SUB和JMP 等。

MOV表示将数据从一个位置移动到另一个位置,ADD表示进行加法运算,SUB表示进行减法运算,而JMP表示跳转到指定的内存地址或标签处。

这些助记符的使用使得程序员能够在不同的汇编语言中更容易地编写和理解代码。

除了汇编语言,高级编程语言中也广泛使用指令助记符。

比如,在C语言中,常见的指令助记符包括IF、FOR、WHILE和SWITCH等。

这些助记符代表了不同的控制流语句和循环结构,使得程序员能够更加方便地实现逻辑控制和循环功能。

在这些高级编程语言中,指令助记符的使用增强了代码的可读性,使得程序员能够以更直观的方式理解代码的逻辑。

指令助记符在操作系统中也发挥着重要的作用。

操作系统中的命令行界面,如UNIX中的Shell和Windows中的命令提示符,常常使用助记符作为用户与计算机交互的方式。

西门子编程 PLC S7-300语句表 助记符 中英文全称对照

西门子编程 PLC S7-300语句表 助记符 中英文全称对照

西门子编程PLC S7-200/300语句表助记符英文全称助记指令(英文全称意思) :指令含义1 、LD ( Lode 装载 ) :动合触点2、LDN ( Lode Not 不装载 ) : 动断触点3、A ( And 与动合) : 用于动合触点串联4、AN ( And Not 与动断 ) :用于动断触点串联5、O ( Or 或动合 ) :用于动合触点并联6、ON ( Or Not 或动断 ) : 用于动断触点并联7、= ( Out 输出 ) :用于线圈输出8、OLD ( Or Lode): 块或9、ALD ( And Lode): 块与10、LPS ( Logic Push ) :逻辑入栈11、LRD ( Logic Read ) :逻辑读栈12、LPP ( Logic Pop ) :逻辑出栈13、NOT ( not 并非 ) :非14、NOP ( No Operation Performed ) : 无操作15、AENO ( And ENO ) : 指令盒输出端ENO相与16、S ( Set 放置 ) : 置117、R ( Reset 重置,清零 ) :清零18、P ( uP 上升) :正跳变19、N ( dowN 下降) :负跳变20、TON ( On_Delay Timer ) :通电延时21、TONR ( Retentive On_Delay Timer ) : 有记忆通电延时型22、TOF ( Off_ Delay Timer ) :断电延时型23、CTU ( Count Up ) : 递增计算器24、CTD ( Count Down ) : 递减计数器25、CTDU ( Count Up/ Count Down ) :增减计数器26、ADD ( add 加 ) : 加注意 //ADD_I (_ I 表示整数) ADD_DI( DI表示双字节整数)ADD-R(R 表示实数)它们都是加运算只是数的大小不同!!后面有很多这样的我就略写了!27、SUB ( Subtract 减去,减少) :减28、MUL ( Multiply ) : 乘29、DIV ( Divide ) : 除30、SQRT ( Square root ) : 求平方根31、LN ( Napierian Logarithm 自然对数 ) : 求自然对数32、EXP ( Exponential 指数的 ) :求指数33、INC_B ( Increment 增加 ) :增134、DEC_B ( Decrement 减少 ) :减135、WAND_B ( Word and 与命令 ) :逻辑与//其中_B代表数据类型还有W(字节)、DW双字后面几个都是这样的。

plc编程指令

plc编程指令

1 1.2 编程简介1.2.1 指令集简介①、基本逻辑指令:●助记符及名称:LD :读取常开点。

LDI :读取常闭点。

AND :串入常开点。

ANI :串入常闭点。

OR 并入常开点。

ORI :并入常闭点。

ANB :电路块串联。

ORB :电路块并联。

OUT :线圈输出。

SET :线圈输出保持。

RST :清除线圈输出。

PLS :上升沿输出脉冲。

PLF :下降沿输出脉冲。

LDP 读取上升沿。

LDF 读取下降沿。

ANDP :上升沿接通,串联连接。

ANDF :下降沿接通,串联连接。

ORP :上升沿接通,并联连接。

ORF :下降沿接通,并联连接。

INV :运算触点取反。

MPS :压栈。

MRD :读栈。

MPP :出栈。

MC :主控。

MCR :主控结束。

NOP :空操作。

END :程序结束。

●梯形图与指令表:梯形图是电气控制的专业语言,方便编程人员编程。

专用芯片是按指令表执行控制。

梯形图与指令表二者自动相互转换。

下例是二者相互转换示意图。

梯形图想对基本逻辑指令进一步了解,请参看《第二章基本逻辑指令说明及应用》。

②、步进顺控指令:●助记符及名称:STL :步进梯形图开始。

仅对状态继电器S 。

步序间状态转移必须使用SETS ,不能用OUTS 。

RET :步进梯形图结束。

●梯形图与指令表:梯形图是电气控制的专业语言,方便编程人员编程。

专用芯片是按指令表执行控制。

梯形图与指令表二者自动相互转换。

下例是二者相互转换示意图。

想对步进顺控指令进一步了解,请参看《第三章步进顺控指令说明及应用》。

③、基本功能指令:●助记符及名称:CJ :条件跳转。

CALL :子程序调用。

SRET :子程序返回。

FENn :主程序结束。

FOR :循环开始。

NEXT :循环结束。

* * * * * * * * * * *CMP : 比较。

ZCP :区域L 匕较。

MOV :传送。

CML :取反传送。

BCD : BIN 向BCD 转换。

BIN : BCD 向BIN 转换。

汇编语言_助记符翻译

汇编语言_助记符翻译
LJMP(Long Jump)长转移;
CJNE (Compare Jump if Not Equal)比较不相等则转移;
DJNZ (Decrement Jump if Not Zero)减1后不为0则转移;
JZ (Jump if Zero)结果为0则转移;
JNZ (Jump if Not Zero) 结果不为0则转移;
RR(Rotate Right) 循环右移;
RRC (Rotate Right throught the Carry flag) 带进位循环右移;
SWAP (Swap) 低4位与高4位交换;
(4)控制转移类指令(17种助记符)
ACALL(Absolute subroutine Call)子程序绝对调用;
LODS---->load string
STOS---->store string
REP---->repeat
REPE---->repeat when equal
REPZ---->repeat when zero flag
REPNE---->repeat when not equal
SHL---->shift left
SAL---->arithmatic shift left
SHR---->shift right
SAR---->arithmatic shift right
ROL---->rotate left
ROR---->rotate right
RCL---->rotate left with carry
LCALL(Long subroutine Call)子程序长调用;

汇编语言助记符

汇编语言助记符

汇编语言助记符汇编语言是一种低级语言,是计算机硬件能够直接执行的语言。

在编写汇编代码时,为了方便记忆和使用,人们使用了一些助记符(mnemonic)来代表机器指令和操作数的操作符。

本文将介绍一些常见的汇编语言助记符以及它们的用法和含义。

1. MOV(Move)MOV是汇编语言中最常见的助记符之一,用于将数据从一个位置移动到另一个位置。

例如,MOV AX, 42表示将值42移动到寄存器AX中。

MOV指令通常用于数据传输和寄存器之间的操作。

2. ADD(Addition)ADD助记符用于执行加法操作。

例如,ADD AX, BX表示将寄存器BX的值加到寄存器AX中。

ADD指令还可以用于将常数加到寄存器中或将内存中的值与寄存器中的值相加。

3. SUB(Subtraction)SUB助记符用于执行减法操作。

例如,SUB AX, BX表示将寄存器BX的值从寄存器AX中减去。

与ADD指令类似,SUB指令也可以用于将常数从寄存器中减去或从内存中的值中减去寄存器中的值。

4. JMP(Jump)JMP助记符用于实现无条件跳转,即程序将跳转到指定地址处继续执行。

例如,JMP Label表示跳转到标签(Label)所指示的位置。

使用JMP指令可以实现程序的循环、条件分支等控制结构。

5. CMP(Compare)CMP助记符用于进行比较操作,通常与条件跳转指令(如JMP、JZ、JG等)配合使用。

例如,CMP AX, BX表示比较寄存器AX和BX 中的值。

通过CMP指令可以判断两个值的大小关系,并根据比较结果执行不同的操作。

6. NOP(No Operation)NOP助记符表示空操作,即不进行任何实际操作。

在编写汇编代码时,可以使用NOP来占据一段空白的指令空间或进行调试时的代码标记。

7. INC(Increment)INC助记符用于将寄存器或内存中的值加1。

例如,INC AX表示将寄存器AX中的值加1,INC [BX]表示将寄存器BX所指向的内存单元中的值加1。

51单片机汇编指令集(附记忆方法)

51单片机汇编指令集(附记忆方法)

51单片机汇编指令集一、数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC(Move Code)读取程序存储器数据表格的数据传送;MOVX (Move External RAM) 对外部RAM的数据传送;XCH (Exchange) 字节交换;XCHD (Exchange low-order Digit) 低半字节交换;PUSH (Push onto Stack) 入栈;POP (Pop from Stack) 出栈;二、算术运算类指令(8种助记符)ADD(Addition) 加法;ADDC(Add with Carry) 带进位加法;SUBB(Subtract with Borrow) 带借位减法;DA(Decimal Adjust) 十进制调整;INC(Increment) 加1;DEC(Decrement) 减1;MUL(Multiplication、Multiply) 乘法;DIV(Division、Divide) 除法;三、逻辑运算类指令(10种助记符)ANL(AND Logic) 逻辑与;ORL(OR Logic) 逻辑或;XRL(Exclusive-OR Logic) 逻辑异或;CLR(Clear) 清零;CPL(Complement) 取反;RL(Rotate left) 循环左移;RLC(Rotate Left throught the Carry flag) 带进位循环左移;RR(Rotate Right) 循环右移;RRC (Rotate Right throught the Carry flag) 带进位循环右移;SWAP (Swap) 低4位与高4位交换;四、控制转移类指令(17种助记符)ACALL(Absolute subroutine Call)子程序绝对调用;LCALL(Long subroutine Call)子程序长调用;RET(Return from subroutine)子程序返回;RETI(Return from Interruption)中断返回;SJMP(Short Jump)短转移;AJMP(Absolute Jump)绝对转移;LJMP(Long Jump)长转移;CJNE (Compare Jump if Not Equal)比较不相等则转移;DJNZ (Decrement Jump if Not Zero)减1后不为0则转移;JZ (Jump if Zero)结果为0则转移;JNZ (Jump if Not Zero) 结果不为0则转移;JC (Jump if the Carry flag is set)有进位则转移;JNC (Jump if Not Carry)无进位则转移;JB (Jump if the Bit is set)位为1则转移;JNB (Jump if the Bit is Not set) 位为0则转移;JBC(Jump if the Bit is set and Clear the bit) 位为1则转移,并清除该位;NOP (No Operation) 空操作;五、位操作指令(1种助记符)CLR 位清零;SETB(Set Bit) 位置1。

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