MCS-51单片机的指令格式

合集下载

MCS-51单片机指令系统教程(3)

MCS-51单片机指令系统教程(3)
MOV IE,#00H ;初始化中断允许寄存器 MOV TH1,#0FEH ;为定时器1赋初值 尽管使用SFR的寄存器名称来取代直接地址,可以带 来程序的可读性,但是在汇编时,仍要将寄存器名字转换 为直接地址。
2,当直接地址时在工作寄存器区中时,可以使用两种寻址 方式来访问。 如:
MOV A,00H ;将RAM中00H单元数据送累加器A
04
03
02
01
00
返回前一次
2.2.3立即寻址
指令本身直接含有所需要的8位或16位的操作数。
将此数称为“立即数”(使用#标明)。如:
MOV A,#30H
;将(8位)立即数送累加器A
MOV DPTR,#2000H ;16位立即数送DPTR积存器
【注意】:MOV A,#30H MOV A,30H 两者的区别。 立即数寻址的指令长度为2或3个字节。
三字节指令在存储器中存放的方式示意图
指令的字节数与指令的运行时间
指令的字节多是否意味着指令周期就长?
指令
字节数 周期数
MOV A,R0
1
1
MOV A,#0FFH 2
1
MOV 20H,#30H 3
2
MUL AB
1
4
INC DPTR
1
1
指令说明 R0内容送累加器A
立即数FFH送A 立即数30H送内存20h单元
累加器A 02H
ALU
DPTR 0300H
0300H + 02H
0302H
ROM
0302H X
返回
MOVC A,@A+DPTR
2.2.6 相对寻址
转移指令中使用的一种寻址方式。MCS-51单片机的指令 系统中,有两类转移指令:相对转移( 2个或3个字节)

MCS-51单片机指令表

MCS-51单片机指令表

MCS-51单片机指令表序号__-__-__年__-__序号__-__附录1MCS-51单片机指令表数据传送类指令指令格式指令功能字节MOVA,RnRn内容传送到A1MOVA,direct 直接地址内容传送到A2MOVA,@Ri间接RAM单元内容送A1MOVA,#data立即数送到A2MOVRn,AA内容送到Rn1MOVRn,direct直接地址内容传送到Rn2MOVRn,#data立即数传送到Rn2MOVdirect,AA传送到直接地址2MOVdirect,RnRn传送到直接地址2MOVdirect2,直接地址传送到直接地址3direct1MOVdirect,@Ri间接RAM内容传送到直接地址2MOVdirect,#data立即数传送到直接地址3MOV@Ri,AA内容送间接RAM单元1MOV@Ri,direct直接地址传送到间接__@Ri,#data立即数传送到间接__CA,@A+DPTR代码字节送A(DPTR为基址)1MOVCA,@A+PC代码字节送A(PC为基址)1MOVXA,@Ri外部RAM(8地址)内容传送到A1MOVXA,@DPTR外部RAM内容(16地址)传送到A1__,#data1616位常数加载到数据指针1MOVX@Ri,AA内容传送到外部RAM(8地址)1MOVX@DPTR,AA内容传送到外部RAM(16地址)1PUSHdirect直接地址压入堆栈2POPdirect直接地址弹出堆栈2XCHA,RnRn内容和A交换1XCHA,direct直接地址和A交换2XCHA,@Ri间接RAM内容A交换1XCHDA,@Ri间接RAM内容和A交换低4位字1节算术运算类指令指令格式指令功能字节INCAA加11INCRnRn加11INCdirect直接地址加12INC@Ri间接RAM加11__数据指针加11DECAA减11DECRnRn减11DECdirect直接地址减12周期__-__-__-__1111周期__-____-__年__序号__-__-__年__-__DEC@Ri__DDA,RnADDA,directADDA,@RiADDA,#dataADDCA,RnADDCA,di rectADDCA,@RiADDCA,#dataSUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#d ata间接RAM减1A和BRn相乘A除以BRnA十进制调整Rn与A求和直接地址与A求和间接RAM与A求和立即数与A求和Rn与A求和(带进位)直接地址与A求和(带进位)间接RAM与A求和(带进位)立即数与A 求和(带进位)A减去Rn(带借位)A减去直接地址(带借位)A减去间接RAM(带借位)A减去立即数(带借位)逻辑运算类指令指令格式指令功能ANLA,RnRn“与”到AANLA,direct直接地址“与”到AANLA,@Ri间接RAM“与”到AANLA,#data立即数“与”到AANLdirect,AA“与”到直接地址ANLdirect,#data立即数“与”到直接地址ORLA,RnRn“或”到AORLA,direct直接地址“或”到AORLA,@Ri间接RAM“或”到AORLA,#data 立即数“或”到AORLdirect,AA“或”到直接地址ORLdirect,#data立即数“或”到直接地址XRLA,RnRn“异或”到AXRLA,direct直接地址“异或”到AXRLA,@Ri间接RAM“异或”到AXRLA,#data立即数“异或”到AXRLdirect,AA“异或”到直接地址XRLdirect,#data立即数“异或”到直接地址CLRAA清零CPLAA求反RLAA循环左移RLCA带进位A循环左移RRAA循环右移RRCA带进位A 循环右移SWAPAA高、低4位交换1__-__-__字节__-__-__-__1__周期__-__-__-__1序号__-__-__-__7序号__-__-__-__7指令格式JMP@A+DPTRJZrelJNZrelCJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,relDJNZRn,relDJNZdirect,relNOPACALLadd11LCALLadd16__AJMPadd11LJMPadd16SJMPrel指令格式__bit__TBbit__bitANLC,bitANLC,/bitORLC,bitORLC,/bitMOVC,bitMOVbit,CJCrelJNCrelJBbit,relJNBbit,relJBCbit,rel 伪指令控制转移类指令指令功能相对DPTR的无条件间接转移A为0则转移A为1则转移比较直接地址和A,不相等转移比较立即数和A,不相等转移比较Rn和立即数,不相等转移字节__周期__-__-__2周期__-__-__2比较立即数和间接RAM,不相等转3移Rn减1,不为0则转移2直接地址减1,不为0则转移3空操作,用于短暂延时1绝对调用子程序2长调用子程序3从子程序返回1从中断服务子程序返回1无条件绝对转移2无条件长转移3无条件相对转移2 位操作指令指令功能字节清进位位1清直接寻址位2置位进位位1置位直接寻址位2取反进位位1取反直接寻址位2直接寻址位“与”到进位位2直接寻址位的反码“与”到进位位2直接寻址位“或”到进位位2直接寻址位的反码“或”到进位位2直接寻址位传送到进位位2进位位位传送到直接寻址2如果进位位为1则转移2如果进位位为0则转移2如果直接寻址位为1则转移3如果直接寻址位为0则转移3直接寻址位为1则转移并清除该3位指令中的符号标识__TEND$指明程序的开始位置定义数据表定义16位的地址表RnRi@Ri工作寄存器R0-R7工作寄存器R0和R1间接寻址的8位RAM单元地址(00H-FFH)8位常数16位目标地址,范围64KB11位目标地址,范围2KB8位偏移量,范围-128~+127片内RAM中的可寻址位和SFR的可寻址位直接地址,范围片内RAM单元(00H-7FH)和80H-FFH给一个表达式或一个字符串#data8起名给一个8位的内部RAM起名addr16给一个8位的外部RAM起名addr11给一个可位寻址的位单元起。

MCS-51指令系统

MCS-51指令系统
18
4、控制转移类指令(二)
无条件转移:(LJMP,AJMP,SJMP,JMP—4条) LJMP addr16 长跳转指令
——可在64K范围内跳转 AJMP addr11 绝对跳转指令
——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令
——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令
1
累加器清零/取反操作 (CLR,CPL—2条)
CLR A —对累加器清零
1 Byte 1 Tm
CPL A ——对累加器按位取非 1 Byte 1 Tm 15
3、逻辑运算及移位类指令(三)
逻辑运算指令在程序中的应用(下面的例子认为Acc 的内容为9AH)
逻辑与ANL运算用于对某些位进行清0或者保留: 例: ANL A, #0FH; 则(A) = 0AH
位清零/置位指令(4条): CLR bit(或C) —— (bit或 C)“0” SETB bit(或C) —— (bit或 C)“1”
位逻辑与/或/非指令(6条): ANL C,bit(或/bit) ORL C,bit(或/bit) CPL bit (或 C) 注: “/bit”表示对bit位先取反然后再参加运算
带借位减法(SUBB):(A) ← (A)- (Cy)- (第二操作数)
10
2、算术运算类指令(三)
加1/减1操作: (INC,DEC—9条) INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位。
单字节乘/除运算: (MUL,DIV—2条) 两个单字节数的乘/除法运算只在A与B之间 进行。 MUL AB: (A)与(B)相乘, 积为16位数,

MCS51单片机指令系统

MCS51单片机指令系统

第一条指令为远查表指令,可以在64K的程序存储器空间寻 址。基地址寄存器为DPTR,其意思为,DPTR里面存放的是 程序存储器中数据表格的首地址,A为数据地址的偏移量。
这条指令执行以后,以 (A)+(DPTR)的数值为地址数 据就送进A里面来了,也就是从表格首地址开始以后的第(A) 个数据被送进A了。(举例子说明)
编写好的程序都放在程序存储器中,由于一个存储地址所 指示的存储单元只能存放一字节的数据。所以,在存放指令时, 必须将指令拆分成一个一个字节进行连续存放。
比如: 实现“累加器加10H”这条指令,其机器语言为 0111010000010000, 占用了两个字节,就必须拆成两个字节 进行连续存储。
但是,用二进制来表示比较麻烦,因此,也常用十六进制来 表示如:74H 10H来表示以上这条机器语言。可见,用十六进 制表示指令比较简单,但是,指令系统有上百条指令,不易记 住。所以,一般采用容易记住的一些缩写符号来表示机器语言,
2. 在指令中直接给出操作数的地址, 这种寻址方式就属
于直接寻址方式。在这种方式中, 指令的操作数部分直接 是操作数的地址。
比如:MOV A,30H;将30H里面的数送到A里面 MOV 21H,30H;将30H里面的数存放到21H里面 在MCS -51 单片机指令系统中, 直接寻址方式中可
以访问 3 种存储器空间: (1) 内部数据存储器的低 128 个字节单元(00H~
7. 位寻址 指按照位进行的寻址操作,(前面讲的都是按字节进
行的寻址操作)。该种寻址方式中, 操作数是内部RAM单元 中20H到2FH的128个位地址以及SFR中的11个可进行 位寻址的寄存器中的位地址寻址。
比如:MOV C,20H;就是将RAM中位寻址区中20H位地 址中的内容送给C。区别与MOV A,20H;这个是将内部 RAM中20H单元的内容送给A。

MCS-51汇编语言指令字节数

MCS-51汇编语言指令字节数

MCS-51单片机的指令字节数
汇编语言的语句的格式为:
标号段:操作码段第一操作数,第二操作数;注释段(如 START: MOV A,#00H ;把0赋给A)
其中操作码段是必段的,其他的段是根据不同的指令而不同,操作数段可以只有一个操作数,也可以有两个操作数,有时还会有三个操作数的情况。

在51单片机中,有单字节指令、双字节指令和三字节指令。

只要理解了指令占用的这些字节都是用来存放哪些量的,那自然就会判断不同的指令是多少字节指令了。

1、操作码段占用一个字节。

2、8位立即数占用一个字节,16位立即数占用两个字节。

3、8位操作数地址占用一个字节,16位操作数地址占用两个字节。

4、CPU内部的各种寄存器不占用指令字节,如A, B, R0, R1, DPTR等。

现在就可以判断51的指令占用的字节数了:
MOV A, R0 ;这是单字节指令,其中MOV占用一个字节,A和R0是CPU内部寄存器,不占用指令字节。

MOV A, #07H ;这是双字节指令,其中MOV占用一个字节,8位立即数#07H占用一个字节。

MOV DPTR, #0106H ;这是三字节指令, MOV占用一个字节,16位立即数#0106H
占用两个字节。

MOV 07H, #07H ;这是三字节指令,MOV占用一个字节,8位地址07H占用一个字节,8位立即数#07H占用一个字节。

[信息与通信]MCS-51单片机指令系统-数据传送类指令

[信息与通信]MCS-51单片机指令系统-数据传送类指令

<P1>=0CAH,分析以下程序执行后各单元及寄存
器、P2口的内容.
• MOV R0,#30H
;R0=30H
• MOV A,R0
;A=40H
• MOV R1,A
;R1=40H
• MOV B,R1
;B=10H
• MOV R1,P1
;<40H>
• MOV P2,P1
=0CAH
• MOV

•执行上述指10令H后,#的20结H果为:<R0>=3<0PH2,<>R=10>C=A<HA>=40H,
3.3 MCS-51指令系统
3.3.1 数据传送类指令〔29条〕 传送类指令分成两大类
1. MOV,一般传送 2.Байду номын сангаас非MOV,特殊传送, 如:MOVC、MOVX、PUSH、
POP、 对PSW的X影C响H、XCHD及SWAP.
• 1. 访问片内数据存储器的一般数据传送指令
• 该类指令的功能是实现数在片内RAM单元之间、 寄存器之间、寄存器与RAM单元之间的传送.所 有指令具有统一的格式,其格式如下:
MOV Rn,
A direct
#data
例:若〔60H〕= 30H 执行 MOV R6,60H
结果:〔R6〕= 30H.
3> 以direct 为目的操作数的指令
MOV direct,
A Rn direct1 Ri
#data
例:若〔R0〕=30H,〔30H〕=25H 执行MOV 40H,R0 指令
结果:〔40H〕=25H.
RAM20H单元 • 外部ROM 2000H单元中的内容送到外部

3.1 MCS-51汇编语言指令格式

3.1 MCS-51汇编语言指令格式

·@: 表示间接寻址寄存器或基址寄存器的前缀符号。 ·@Ri: 表示寄存器间接寻址,常常作间接寻址的地址指针。 其中Ri代表R0和R1寄存器中的一个。
16
第一节 指令格式
P35 常用符号 ·addr16: 表示16位地址 ·addr11: 表示11位地址 ·rel: 用补码形式表示的地址偏移量,取值范围为-128~+127。 ·Bit: 表示内部RAM和SFR中的具有位寻址功能的位地址。 ·$: 表示当前指令的地址。 ·#date16: 表示16位立即数,即16位常数, 取值范围为#0000H~#0FFFFH
6
第一节 指令格式
根据指令格式,找出表中指令的 根据指令格式,
实际地址 标号 汇编指令助记符
ORG 0060H R5,#100 R6,#200 R7,#248
操作码
0060H 0062H 0064H
DELAY: MOV D1: MOV D2: MOV
D3: DJNZ R7,D3
DJNZ R6,D2 DJNZ R5,D1 RET END
4
0064H 0062H
实验6.1 实验
ORG 0000H AJMP START ORG 0050H START: MOV R0,#30H MOV R2,#10H CLR A L1: MOV @R0,A INC INC R0 A
L2: DJNZ R2,L1 L3: SJMP L3 END
5
第一节 指令格式
ORG 0060H
0060H 0062H 0064H
START: CLR P3.7 MOV R2,#07H
MOV A,#0FEH LOOP: MOV LCALL P0,A DELAY
RL
A

MCS-51单片机指令格式

MCS-51单片机指令格式
11)direct ——表示内部数据存贮器单元的地址或特殊功能寄存器SFR的地址,对 SFR而言,既可使用它的物理地址,也可直接使用它的名字。
12)bit ——表示内部RAM和SFR中的某些具有位寻址功能的位地址。SFR中的位地 址可以直接出现在指令中,为了阅读方便,往往也可用SFR的名字和所在的数 位表示。如:表示PSW中的奇偶校验位,可写成D0H,也可写成PSW.0的形式。
当前使用的寄存器组。 6)Ri(i=0或1)——可用于间接寻址的两个寄存器R0、R1。 7)#data ——8位立即数 8)#data16 ——16位立即数。 9)rel ——以补码形式表示的8位相对偏移量,范围为-128~127,主要用在相对寻址的
指令中。
10)addr16和addr11 ——分别表示16位直接地址和11位直接地址。即存放操作数的 存储器地址。
MCS-51单片机指令中常用的符号规定:
1)A(ACC)——累加器。 2)B——专用寄存器,用于乘法和除法指令中。 3)C——进位标志或进位位,或布尔处理机中的累加位(器) 4)DPTR——数据指针,可用作16位地址寄存器。 5) Rn(n=0~7)——当前寄存器组的8个工作寄存器R0~R7,由PSW中的RS1、RS0决定
单片机原理与应用
如:AA:ADD A,﹟10H ;将累加器A的内容与10H相加,结果存入累加器A AA为标号,是这条指令的标志,其值是该条指令的首地址;
ADD为操作码,说明要进行加法运算; 目的操作数为累加器A; 源操作数为﹟10H; “;”后面为注释部分。
13)@ ——间接寻址中工作寄存器的前缀符号。 14)(X) ——X单元中的内容。 15)((X)) ——以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元

MCS--51单片机指令

MCS--51单片机指令

MCS--51单片机指令一、数据传送类指令1、内部数据存储器间数据传送指令MOV A,#dataMOV A,directMOV A,RnMOV A,@RiMOV Rn,#dataMOV Rn,directMOV Rn,AMOV direct,#dataMOV direct,AMOV direct,RnMOV direct,@RiMOV direct,directMOV @Ri,#dataMOV @Ri,AMOV @Ri,direct2、以DPTR为目的的MOV DPRT,#data 163、访问片外RAMMOVX A,@DPTRMOVX A,@RiMOVX @DPTR,AMOVX @Ri,A4、访问片外ROMMOVC A,@A+DPTR ;(A) ←((A)+(DPTR))MOVC A,@A+PC ;(PC) ←(PC)+1,(A) ←((A)+(PC))5、数据交换指令XCH A,direct ;(A) ↔(direct)XCH A,@Ri ;(A) ↔((Ri))XCH A,Rn ;(A) ↔(Rn)XCHD A,@Ri ;(A3~0)↔ ((Rn)3~0)SWAP A ;(A7~4)↔ (A3~0)6、堆栈操作类指令PUSH direct ;(SP)←(SP)+1,(SP)←(direct)POP direct ;(direct)←(SP),(SP)←(SP)-1二、算术运算类指令1、加法指令ADD A,#dataADD A,directADD A,@RiADD A,Rn2、带进位加法指令ADDC A,#data ;(A)←(A)+(CY)+#dataADDC A,directADDC A,@RiADDC A,Rn3、带借位减法SUBB A,#data ;(A)←(A)-(CY)-#dataSUBB A,directSUBB A,@RiSUBB A,Rn4、加1、减1指令INC AINC directINC @RiINC RnINC DPRTDEC ADEC directDEC @RiDEC Rn5、乘、除法指令乘法指令MUL AB ;(B)←((A)×(B))15~8,(A)←((A)×(B))7~0(CY)←0除法指令DIV AB ;(A)←(A)÷(B)之商,(B)←(A)÷(B)之余数(CY)←0,(OV)←06、十进制调整指令DA A ;若(A)3~0>9或(AC)=1,则(A)3~0←(A)3~0+06H;若(A)7~4>9或(CY)=1,则(A)7~4←(A)7~4+06H三、逻辑运算及移位类指令1、逻辑“与”运算指令ANL direct,AANL direct,#dataANL A,#dataANL A,directANL A,@RiANL A,Rn2、逻辑“或”运算指令ONL direct,AONL direct,#dataONL A,#dataONL A,directONL A,@RiONL A,Rn3、逻辑“异或”运算指令XNL direct,AXNL direct,#dataXNL A,#dataXNL A,directXNL A,@RiXNL A,Rn4、累加器A清零与取反指令CLR A ;(A)←00HCPL A ;(A)←(Ᾱ)5、移位指令RL A ;(A n+1)←(A n),(A0)←(A7)RLC A ;(A n+1)←(A n),(CY)←(A7),(A0)←(CY)RR A ;(A n)←(A n+1),(A7)←(A0)RRC A ;(A n)←(A n+1),(CY)←(A0),(A7)←(CY)四、控制转移类指令1、无条件转移指令LJMP addr16AJMP addr11SJMP relJMP @A+DPTR2、条件转移指令1)累加器判零转移指令JZ rel ;若(A)=0,则跳转JNZ rel ;若(A)≠0,则跳转2)比较转移指令CJNE A,#data,relCJNE A,direct,relCJNE @Ri,#data,relCJNE Rn,#data,rel若目的操作数=源操作数,则执行下一条指令若目的操作数>源操作数,则跳转,CY=0若目的操作数<源操作数,则跳转,CY=13)减1条件转移指令DJNZ direct,rel ;(direct)←(direct)-1若(direct)=0,则执行下一条指令否则,跳转DJNZ Rn,rel ;(Rn)←(Rn)-1若(Rn)=0,则执行下一条指令否则,跳转3、子程序调用及返回指令LCALL addr16ACALL addr11RETRETI4、空操作指令NOP五、位操作类指令1、位传送指令MOV C,bitMOV bit,C2、位置位指令CLR bit ;(bit)←0CLR C ;(CY)←0SETB bit ;(bit)←1SETB C ;(CY)←13、位逻辑指令ANL C,bitANL C,/bitORL C,bitORL C,/bitCPL bitCPL C4、位条件转移指令1)、以CY内容为条件的双字节双周期转换指令JC rel;若(CY)=1,则转移否则,顺序执行JNC rel;若(CY)=0,则转移否则,顺序执行2)、以位地址内容为条件的三字节双周期转移指令JB bit,rel;若(bit)=1,则转移否则,顺序执行JNB bit,rel;若(bit)=0,则转移否则,顺序执行JBC bit,rel;若(bit)=1,则转移,(bit)←0否则,顺序执行。

MCS-51单片机指令系统

MCS-51单片机指令系统

MOV DPTR,#2000H
6、栈操作指令
PUSH direct; (SP)<-SP+1, ((SP))<(direct)
进栈指令的功能是先将SP的指针加1,然 后把直接地址指出的内容传送到栈指针SP寻 址的内部RAM单元中。
POP direct; (direct)<-((SP)), (SP)<-SP-1
@DPTR, A; ((DPTR))<-(A)
A, @R1
@DPTR,A
8、查表指令
MOVC A,@A+DPTR; (A)<-((A))+((DPTR)) MOVC A,@A+PC ; (A)<-((A))+((PC))
9、字节交换指令
XCH A, Rn; XCH A,direct; XCH A,@Ri;
XRL A, direct ; A与direct中的值 ;按位'异或',结果送入A中
XRL A, @Ri; A与间址寻址单元@Ri中 ;的值按位'异或',结果送入A中
4、逻辑异或指令
XRL A, #data ;A与立即数data按位 ;‘异或’,结果送入A中
XRL direct, A ; direct中值与A中的值 ;按位‘异或’, ;结果送入direct中
(A)<->(Rn) (A)<->(direct) (A)<->((Ri))
10、半字节交换指令
XCHD A,@Ri; (A)0-3<->((Ri))0-3
2、算术指令
1、不带进位位的加法
ADD
A, #data;
(A)<-(A)+#data

MCS-51单片机的指令

MCS-51单片机的指令

MCS-51单⽚机的指令MCS-51单⽚机的指令⼀.数据传送类指令(29条).1 通⽤传送指令(16条)格式:MOV ⽬的操作数,源操作数功能:把第⼆操作数指定的字节内容传送到第⼀操作数指定的单元中。

不影响源操作数内容,不影响别的寄存器和标志。

根据⽬的操作数的不同,通⽤传送指令⼜分为以下⼏种类型:1.1 以累加器A为⽬的操作数的传送类指令(4条)指令助记符及功能说明如下:⽬的操作数源操作数功能说明源操作数寻址⽅式MO V A, direct ;(A)←(direct)直接寻址MO V A, @Ri ;(A)←((Ri))寄存器间接寻址MO V A, Rn ;(A)←(Rn)寄存器寻址MO A, #data ;(A)←data ⽴即寻址V这类指令的功能是将源操作数送到⽬的操作数A中。

指令执⾏后的结果:除了奇偶标志P始终跟踪A中数据的奇偶性外,不影响PSW中的其他标志位。

1.2 以Rn为⽬的操作数的传送类指令(3条)指令助记符及功能说明如下:⽬的操作数源操作数功能说明源操作数寻址⽅式MOVRn, A ;(Rn)←(A) 寄存器寻址MO V Rn, direct ;(Rn)←(direct)其中,Rn是R0,…,R7中的任意⼀个。

例1 若(A)=20H,则执⾏指令MOV R3, A后,(R3)=20H。

注意:Rn寄存器之间不能直接传送数据。

如指令“MOV R1, R7”是错误的。

该类指令执⾏后,不影响PSW中的标志位。

1.3. 以直接地址directX为⽬的操作数的传送类指令(5条)指令助记符及功能说明如下:⽬的操作数源操作数功能说明源操作数寻址⽅式M OV directX, A ;(directX)←(A)寄存器寻址M directX, Rn ;(directX)←寄存器寻址OV (Rn)M OV directX, directY ;(directX)←(directY)直接寻址M OV directX, @Ri ;(directX)←((Ri))寄存器间接寻址M OV directX, #data ;(directX)←data⽴即寻址这类指令的功能是把源操作数的内容送到直接地址directX中去。

单片机指令系统

单片机指令系统

② 外部传送指令
指令格式: 指令格式:
目的操作数和源操作数 中必须有一个是A 实现片外数据存储器和A累加器之间的数据传送。 实现片外数据存储器和A累加器之间的数据传送。
MOVX 目的操作数,源操作数 目的操作数,
例:位地址的表示方法(4种) 40H 位地址的表示方法( MOV C,40H ;
28H 设指令执行前 C = 1,位地址 ,C 40H 存储器单元如图, 执行指令后, C 40H 存储器单元如图 , 执行指令后 ,–MOV EA29H = 0 ?
–MOV 20H ,C 位编语言: 汇编语言: A, MOV A,R0 R6, MOV R6,#32H 40H, MOV 40H,#100H
11101000 机器语言: 机器语言: E8H 7E 32H 75 40 64H 01111110 00110010 01110101 01000000 01100100
例:顺序执行下列指令序列,求每一步执行结果。 顺序执行下列指令序列,求每一步执行结果。 ;A= 30H A, MOV A,#30H ;(4FH)= 30H 4FH, MOV 4FH,A R0, MOV R0,#20H ;R0= 20H @R0, MOV @R0,4FH ;(20H)= 30H 21H, MOV 21H,20H ;(21H)= 30H 例:用两种寻址方式实现,将片内RAM 60H单元的数据 用两种寻址方式实现,将片内RAM 60H单元的数据 传送给累加器A 传送给累加器A。 解: MOV A,60H MOV R0,#60H R0, A, MOV A,@R0
注意:数值前加#符号表 注意:数值前加# 示该数是立即数
● 变址寻址方式是单片机中用于访问程序存储器的 变址寻址方式是单片机中用于访问程序存储器 程序存储器的 寻址方式。 寻址方式。 数据在程序存储器 程序存储器中 ● 数据在程序存储器中,指令给出的寄存器中为数 据的基地址和偏移地址。( 据的基地址和偏移地址。(数据地址 = 基地址 + 偏移地

第3章MCS-51单片机指令系统

第3章MCS-51单片机指令系统

第3章MCS-51单片机指令系统3.1概述3.1.1指令格式3.1.2指令的三种表示形式3.1.3指令的字节数1. 单字节指令(49条)图3-1 MOVA,Rn指令的格式2单片机原理及其接口技术(第2版)2. 双字节指令(46条)3. 三字节指令(16条)3.1.4指令的分类1. 数据传送指令(28条)2. 算术运算指令(24条)3. 逻辑操作和环移指令(25条)4. 控制转移指令(17条)5. 位操作指令(17条)3.1.5指令系统综述1. 指令系统中所用符号的说明2. 指令对标志位的影响3.2寻址方式3.2.1寄存器寻址图3-2寄存器寻址示意图单片机原理及其接口技术(第2版) 3 3.2.2直接寻址图3-3直接寻址示意图3.2.3立即寻址3.2.4寄存器间址图3-4寄存器间址寻址示意图3.2.5变址寻址图3-5变址寻址示意图4单片机原理及其接口技术(第2版)3.2.6相对寻址图3-6相对寻址示意图3.2.7位寻址3.3数据传送指令3.3.1内部数据传送指令(15条)1. 立即寻址型传送指令2. 直接寻址型传送指令3. 寄存器寻址型传送指令4. 寄存器间址型传送指令5. 内部数据传送指令的使用图3-7 8×C552/8051指令的数据传送方式单片机原理及其接口技术(第2版) 5 3.3.2外部数据传送指令(7条)1. 16位数传送指令2. 外部ROM的字节传送指令图3-8 0~9平方值表3. 外部RAM的字节传送指令3.3.3堆栈操作指令(2条)图3-9例3.8的堆栈变化示意图6单片机原理及其接口技术(第2版)3.3.4数据交换指令(4条)3.4算术与逻辑运算和移位指令3.4.1算术运算指令(24条)1. 加法指令2. 减法指令3. 十进制调整指令4. 乘法和除法指令3.4.2逻辑运算指令(20条)1. 逻辑与运算指令2. 逻辑或指令3. 逻辑异或指令4. 累加器清零和取反指令3.4.3移位指令(5条)单片机原理及其接口技术(第2版)7图3-10例3.26附图3.5控制转移和位操作指令3.5.1控制转移指令(17条)1. 无条件转移指令图3-11 AJMP指令转移范围8单片机原理及其接口技术(第2版)图3-12例3.29附图图3-13带符号数的比较方法3. 子程序调用和返回指令图3-14二级子程序嵌套及断点地址存放单片机原理及其接口技术(第2版)9图3-15例3.33附图10单片机原理及其接口技术(第2版)4. 空操作指令3.5.2位操作指令(17条)1. 位传送指令2. 位置位和位清零指令3. 位运算指令4. 位控制转移指令习题与思考题3.1指令通常有哪三种表示形式?各有什么特点?3. 2 MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?3. 3 MCS-51共有哪七种寻址方式?各有什么特点?3. 4指出下列每条指令源操作数的寻址方式和功能。

第3章 MCS-51 单片机的指令系统

第3章 MCS-51 单片机的指令系统

2.2 用@Ri进行间接寻址的指令 MOVX A, @Ri; ((Ri)) MOVX @Ri,A; (A) (A) ((DPTR))
说明:若外部扩展RAM小于等于256单元,用@Ri间接 寻址进行数据传送,8位地址线足够使用。
若外部扩展较大的RAM区域,须用P2口输出高8位地址, 用@Ri表示低八位地址,P0口分时作低8位地址线和数 据线,P2口应事先预置。
累加器
Rn #data 立即数
寄存器
2 外部数据存储器(或I/O)的读写指令 2.1 用@DPTR进行间接寻址的指令
MOVX A, @DPTR; ((DPTR)) (A)
MOVX @DPTR,A; (A)
((DPTR))
DPTR为16位数据指针,该指令可寻址外部RAM64K范围 (0000H-0FFFFH),地址低8位由P0口输出,地址高8 位由P2口输出,数据通过P0口读入或写出。
一 数据传送指令 1 内部数据传送指令(MOV) 指令格式:MOV <目的操作数〉,<源操作数> 指令的源操作数和目的操作数都在单片机内部。可以 是片内RAM地址,也可以是特殊功能寄存器SFR的地址 指令的功能是把源操作数指定的字节变量复制到目的 操作数所规定的单元或寄存器中,源字节不变。
1.1 立即数传送指令 源操作数为立即数 八位立即数传送指令: MOV A,#DATA; DATA (A) 例:MOV A,#02H; MOV Rn,#DATA; DATA (Rn) n=0-7 例:MOV R3,#02H; MOV @Ri,#DATA; DATA ((Ri)) i=0,1 例:MOV @R1,#02H; MOV direct,#DATA; DATA (direct) 例:MOV 30H,#02H;

第三章 MCS-51单片机指令系统

第三章 MCS-51单片机指令系统

位操作类指令(17条)
位操作指令实际就是布尔处理机的指令系统,这 为开关量控制提供了非常有效的手段。
位传送
位置位复位
位运算 位控制转移
位数据传送指令(2条)
MOV MOV
C , bit bit,C
例:片内RAM中(20H)=7FH,执行指令
MOV C,07H 则C=0
位置位复位指令(4条)
调用与返回指令组(4条)
长调用指令 绝对调用指令 子程序返回指令
LCALL addr16 ACALL addr11 RET
中断服务程序返回指令 RETI
空操作指令(1条)
NOP
例:把2000H开始的外部RAM单元中的数据送到3000H
开始的外部RAM单元中,数据个数存放在内部RAM 35H单元。
ANL(ORL,XRL) A , { #data ; direct ; @Ri ; Rn }
2. 直接地址单元与累加器A、立即数之间的逻辑操作(6条)
ANL(ORL,XRL) direct , { A ; #data }
清零与取反指令(2条)
清零: 取反:
CLR A CPL A
循环移位指令(4条)
2. 带进位加法指令(4条) ADDC A , { #data ; direct ; @Ri ; Rn }
3. 带借位减法指令(4条) SUBB A , { #data ; direct; @Ri ; Rn }
影响所有标志位状态
例: 执行指令 MOV A , #0C2H ADD A , #0A9H 对PSW相应状态位的影响如下 1 1 1
3.2 MCS-51指令分类介绍
共分5大类,111条指令。
1.数据传送类指令(29条) 2.算术运算类指令(24条) 3.逻辑运算及移位类指令(24条) 4.控制转移类指令(17条) 5.位操作类指令(17条)

)1MCS51单片机的指令格式中操作码与操作数之间必须用.

)1MCS51单片机的指令格式中操作码与操作数之间必须用.

第2章汇编语言智能电子产品的指令系统判断题( )1.MCS—51 单片机的指令格式中操作码与操作数之间必须用“,”分隔。

()2. MCS —51指令:MOV A , #40H ;表示将立即数40H传送至A中。

()3. MCS —51指令:MOV A , @R0 ;表示将RO指示的地址单元中的内容传送至A中。

( ) 4. MCS—51 指令:MOVX A ,@DPTR ;表示将DPTR 指示的地址单元中的内容传送至A 中。

( ) 5. MCS—51 的数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数改变,目的操作数修改为源操作数。

( ) 6. MCS—51 指令中,MOVX 为片外RAM 传送指令。

( ) 7. MCS—51 指令中,MOVC 为ROM 传送指令。

()8.将37H单元的内容传送至A的指令是:MOV A,#37H。

( ) 9. MCS—51 指令中,16 位立即数传送指令是:MOV DPTR ,#data16。

( ) 1O. MCS —51 单片机,CPU 对片外RAM 的访问只能用寄存器间接寻址的方式,且仅有4 条指令。

( ) 11 .如JC rel 发生跳转时,目标地址为当前指令地址加上偏移量。

( ) 12.对于8O51 单片机,当CPU 对内部程序存储器寻址超过4K 时,系统会自动在外部程序存储器中寻址。

()13.指令MUL AB 执行前(A) =FOH , (B) =05H,执行后(A) =FH5 , ( B) =00H。

( ) 14.已知:DPTR=11FFH 执行INC DPTR 后,结果:DPTR=12OOH 。

( ) 15.已知:A=11H B=O4H ,执行指令DIV AB 后,其结果:A=O4H ,B=1 CY=OV=O 。

()16.已知:A=1FH , (30H) =83H ,执行ANL A , 30H 后,结果:A=03H (30H) =83HP=O。

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

一、复习上次课内容
什么是指令周期?
答:指令周期即执行一条指令所占用的全部时间,通常为1--4个机器周期。

二、讲授新课
第三章MCS-51单片机的指令系统
3.1 MCS-51单片机的指令格式
一、指令分类
按指令功能,MCS-51指令系统分为数据传送与交换、算术运算、逻辑运算、程序转移、布尔处理操作、CPU控制等6类。

布尔处理操作类指令又称位操作指令。

二、指令格式
在MCS-51指令中,一般指令主要由操作码、操作数组成。

指令应具有以下功能:
(1)操作码指明执行什么性质和类型的操作。

例如,数的传送、加法、减法等。

(2)操作数指明操作的数本身或者是操作数所在的地址。

(3)指定操作结果存放的地址。

Rn:当前选中的寄存器区中的8个工作寄存器R0~R7(n=0~7)。

Ri:当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。

Direct:8位的内部RAM单元中的直接地址。

#data:包含在指令中的8位立即数。

#data16:包含在指令中的16位立即数。

Addr16:16位目的地址。

Addr11:11位目的地址。

3.2 寻址方式
3.2.1 立即寻址
操作数以指令形式出现,称作立即数,用加# 号的8位或16位数来表示。

例如MOV A,# 60H ;A←#60H
MOV DPTR,# 3400H ;DPTR←#3400H
MOV 30H,# 40H ;30H单元←#40H
上述三条指令执行完后,累加器A中数据为立即数据60H,DPTR寄存器中数据为3400H,30H单元中数据为立即数40H。

3.2.2 直接寻址
指令中直接给出操作数的8位地址,能进行直接寻址的存储空间有SFR 和片内RAM。

例如:MOV PSW,# 20H ;PSW←#20H
PSW直接地址为D0H,在指令中可用其名称。

MOV A,30H ;A←30H内部RAM单元中的内容
30H为直接给出的内部RAM的地址。

3.2.3 寄存器寻址
这里的寄存器是指所选中的工作寄存器R0~R7或A、B 、DPTR、AB 。

例如:CLR A ;A←0
INC DPTR ;DPTR←DPTR+1
ADD A,R2 ;A←A+R2
MUL AB
3.2.4 寄存器间接寻址
以寄存器的内容作为操作数的地址,在寄存处器前加@以示区别。

即以寄存器作为指针,可用于访问片内RAM和片外RAM。

不能访问SFR。

能作为间接寻址的寄存器有R0、R1、DPTR,SP。

其中R0、R1是指所选中的工作寄存器。

SP仅用于堆栈操作。

1.访问片内RAM:用R0、R1作为间接寄存器,堆栈用SP作为间
接寄存器。

例如:MOV @Ri,A (i=0或1)
2.访问片外RAM:这是唯一访问方法
⑴访问低256字节,可用R0或R1作为间接寄存器
例如:MOVX A,@Ri (i=0或1)
⑵访问整个64kB空间,可用R0或R1作为间接寄存器,用P2指出高8位地址
例如:MOV P2,# 高8位地址
MOVX A,@Ri (i=0或1)
⑶访问整个64kB空间,可用DPTR作为间接寄存器
3.2.5 变址寻址
变址寻址只能对程序存储器中的数据进行读取访问。

在指令符号上采用MOVC的形式。

用基址寄存器DPTR或PC的内容与变址寄存器A中的内容相加形成要访问数据的地址。

例如:MOVC A,@ A+DPTR ;A←(A+DPTR)
或MOVC A,@ A+PC ;A← (A+PC)
3.2.6 相对寻址
相对寻址是为实现程序的相对转移而设计。

在相对转移指令中,给出地址偏移量rel,它是8位带符号数的补码:80H~7FH (-128~+127)。

以PC的当前值加上指令中给出的偏移量就形成新的PC值,即程序转移地址。

PC的当前值是指执行完该转移指令后的PC值。

因为转移指令有2或3个字节,所以应该在原转移指令操作码地址基础上加上2或3。

三、课堂巩固
四、课堂小结
五、作业。

相关文档
最新文档