MCS-51单片机指令系统

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

MOV Rn,A
; (A)→Rn,n=0~7
MOV Rn,direct ;(direct)→Rn,n=0~7
MOV Rn,#dat ; #data→Rn,n=0~7
例 MOV R1 ,#10H ;将立即数10H送R1寄存器,
3.3.1 数据传送指令位操作
3.以直接地址direct为目的操作数的指令
操作数则是指令操作的对象
标号:
指令助记符
, 操作数
;注释
3.1 MCS-51单片机指令格式
单字节指令、双字节指令、三字节不同长度的 指令,格式不同: (1)单字节指令:指令只有一个字节,操作码和 操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字 节是操作数。 (3)三字节指令:操作码占一个字节,操作数占 二个字节。其中操作数既可能是数据,也可能是 地址。
号的8位二进制数补码数。
例:
MOVC A,@A+PC MOVC A,@A+DPTR JMP @A+DPTR
PC值不变 →PC值变
3.2 MCS-51指令寻址方式
7.位寻址
位寻址是指对片内RAM的位寻址区(20H~ 2FH)和可以位寻址的特殊功能寄存器的各位进 行位操作的寻址方式。
MCS-51单片机片内RAM有两个区域可以位 寻址:
3.3.1 数据传送指令位操作
8.查表指令 用于读程序存储器中的数据表格的指令,均
采用基址寄存器加变址寄存器间接寻址方式。 共两条
(1) MOVC A,@A+PC
例 (A)=30H,执行地址1000H处的指令 1000H: MOVC A,@A+PC
本指令占用一个字节,执行结果将程序存储器中 1031H的内容送入A。
3.3.1 数据传送指令位操作
(3)累加器A高低半字节交换指令(SWAP)
SWAP A ;A7~4 A3~0
功能:将累加器A中的高4位与低4位内容互换,不影响标志 位
例 若(A)=45H,(R0)=20H,(20H)=69H,执行下列指令后
SWAP A
;(A)=54H
XCH A ,R0
;(A)= 20H,(R0)=45H
3.3.1 数据传送指令位操作
入栈指令 PUSH direct
例 (SP)=60H, (A)=30H ,(B)=70H 时,执行 PUSH Acc ;(SP)+1=61H→SP, (A) → 61H PUSH B ;(SP)+1=62H→SP, (B) → 62H
结果: (61H)=30H, (62H)=70H, (SP)=62H
功能:读外部RAM存储器或I/O中的一个字节,或把A中一个 字节的数据写到外部RAM存储器或I/O中。
3.3.1 数据传送指令位操作
7. 堆栈操作指令(PUSH 、POP):2条
功能:分别用于保护现场和恢复现场 进栈指令PUSH用于保护片内某个单元内容 出栈指令POP用于恢复片内某个单元内容
PUSH direct ;(SP)+1→(SP),(direct)→(SP) POP direct ;(SP)→(direct),(SP)-1→(SP)
MOV P2 , R2 ;寄存器R2内容送P2口
3.3.1 数据传送指令位操作
4.以寄存器间接地址为目的操作数的指令
MOV @Ri,A
;(A)→((Ri)),i=0,1
MOV @Ri,direct ; (direct)→((Ri))
MOV @Ri,#data ; #data→((Ri))
例 设(A)=33H ,(R0)=56H ,则执行指令: MOV @R0 ,A ;(R0)←(A),
3.3.1 数据传送指令位操作
数据传送指令位操作把某一单元中内容传送
到另一单元中去。 一般传送类指令的通用指令格式为 MOV <目的操作数>,<源操作数>
源操作数可以是累加器A、通用寄存器Rn、直 接地址direct、间址寄存器@Ri和立 即数。
目的操作数可以是累加器A、通用寄存器Rn、 直接地址direct和间址寄存器@Ri。
使用F0表示该位。
(3)单元地址加位数的表示方法。例如 :(0D0H).5。
(4) 特 殊 功 能 寄 存 器 符 号 加 位 数 的 表 示 方 法 。 例
如:PSW.5
D7
D6
D5
D4
D3
D2
D1
D0
PSW CY AC F0 RS1 RS0 OV — P D0H
3.2 MCS-51指令寻址方式
即(56H)=33H
3.3.1 数据传送指令位操作
5. 16位数传送指令 MOV DPTR,#data16 ; #data16→DPTR
唯一的16位数据的传送指令 ,立即数的高8位送入 DPH,立即数的低8位送入DPL。 例 MOV DPTR ,#1011H DPTR←1011H,
结果为(DPH)=10H, (DPL)=11H
3.2 MCS-51指令寻址方式
寻址方式:指CPU寻找操作数或操作数地址
的方法
立即寻址
直接寻址
寄存器寻址
寻址方式
寄存器间接寻址
基址加变址寄存器间接寻址
相对寻址
位寻址
3.2 MCS-51指令寻址方式
1. 立即寻址 操作数直接由指令给出,通常紧跟指令操作码之后的字 节是操作数,该操作数被称为立即数 立即数:8/16位二进制数
3.2 MCS-51指令寻址方式
4. 寄存器间接寻址方式 寄存器中存放的是操作数的地址 在寄存器的名称前面加前缀标志“@”
访问内部RAM或外部数据存储器的低256个字节时,只能 采用R0或R1作为间址寄存器。例如: MOV A,@Ri ;i=0或1
寻址范围: (1)访问内部RAM低128个单元,其通用形式为@Ri (2)对片外数据存储器的64K字节的间接寻址,例如:
第3章 MCS-51单片机指令系统
内容安排
3.1 MCS-51单片机指令格式 3.2 MCS-51指令寻址方式 3.3 MCS-51单片机指令系统
3.1 MCS-51单片机指令格式
指令:是计算机用于控制某个功能部件完成某一指定动作 的指示和命令 指令系统:所有指令的集合 指令由两部分组成,即操作码和操作数。 操作码用来规定指令进行什么操作
(1) 20H~2FH单元的128个位; (2) 特殊功能寄存器中字节地址能被整除 的寄存器中的各位。
3.2 MCS-51指令寻址方式
特殊功能寄存器PSW中的可寻址位在指令中 有如下4种的表示方法:
(1)直接使用位地址。例如PSW.5的位地址为0D5H。
(2)位名称的表示方法。例如:PSW.5是F0标志位,可
3.3.1 数据传送指令位操作
1. 片内RAM数据传送指令组 该类指令共有16条。 (1) 以A为目的操作数的指令:
MOV A,Rn MOV A,@Ri
; (Rn)→A,n=0~7 ; ((Ri))→A,i=0,1
MOV A,direct ;(direct)→A
MOV A,#data ; #data→A
3.3.1 数据传送指令位操作
(2) MOVC A,@A+DPTR
例:在ROM 1000H开始存有5个字节数,编程将第二个字节数取出 送片内RAM 30H单元中。
程序段如下:
MOV DPTR,#1000H ;置ROM地址指针(基址)DPTR←1000H
MOV A ,#01H;
表内序号送A(变址),A←01H
3.3.1 数据传送指令位操作
6.累加器A与外部数据存储器传送指令 MOVX A,@DPTR ;((DPTR))→A,读外部RAM/IO MOVX A,@Ri ;((Ri))→A,读外部RAM/IO MOVX @DPTR,A;(A)→((DPTR)),写外部RAM/IO MOVX @Ri,A ;(A)→((Ri)),写外部RAM/IO
MOVX A,@DPTR
3.2 MCS-51指令寻址方式
(3)片外数据存储器的低256字节 例如:MOVX A,@Ri
(4)堆栈区 堆栈操作指令PUSH(压栈)和POP(出栈)
使用堆栈指针(SP)作间址寄Fra bibliotek器3.2 MCS-51指令寻址方式
5. 基址加变址寄存器间接寻址 以DPTR或PC为基址寄存器,以A为 变址寄存器,以两者相加形成的16位地 址为操作数的地址。 寻址方式的指令只有3条:
3.2 MCS-51指令寻址方式
3.寄存器寻址 寄存器寻址是指指令中的操作数为寄存器中的内容。 可用寄存器有: (1)四组工作寄存器R0~R7共32个工作寄存器, 由PSW中的RS1、RS2两位状态来选择当前寄存器 组 (2)SFR中有A、AB、DPTR及CY 如:MOV R3,#12H ;
MOV A,R3 ; (A)←(R3)
MOVC A,@A+DPTR;从ROM 1001H单元中取数送到A
MOV 30H ,A ;
再存入片内RAM 30H中
ORG 1000H ;
伪指令,定义数表起始地址
TAB:DB 55H,67H,9AH,34H,57H ;
在ROM 1000H开始的空间定义5个单字节数执行结果:(30H)=67H。
3.3.1 数据传送指令位操作
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
3.2 MCS-51指令寻址方式
6.相对寻址 相对寻址方式是以程序计数器PC的当前值 为基准,加上指令中给出的相对偏移量rel以形 成目标地址。
目的地址=转移指令所在地址+转移指令
字节数 +rel 操作数rel为程序转移的偏移量,是一带符
带进位加法指令(4)
带借位减法指令(4)
加1、减1指令(9)
乘法和除法指令(2)
十进制调整指令(1)
3.3.2 算术运算类指令
1.加法指令
共有4条加法运算指令:
ADD A,Rn
;(A)+(Rn)→A,n=0~7
ADD A,direct ;(A)+(direct)→A
ADD A,@Ri
;(A)+((Ri))→A,i=0,1
3.3.1 数据传送指令位操作
例 MOV A ,#38H ;A←38H MOV A ,R0 ;A←(R0) 设(33H)=7AH;R0=33H,则 MOV A ,@R0 ;将R0指定的33H中的数
7AH送A中 执行结果:A=((R0))=(33H)=7AH。
3.3.1 数据传送指令位操作
2.以Rn为目标的操作数的指令:
3.3 MCS-51单片机指令系统
MCS-51的基本指令共111条,按指令所占的字节来分: (1) 单字节指令49条; (2) 双字节指令45条; (3) 三字节指令17条。 按功能分类,可分为下面5大类: (1)数据传送类(28条) (2)算术操作类(24条 (3)逻辑运算类(25条) (4)控制转移类(17条) (5)位操作类(17条)
XCHD A , @R0 ;(A)=49H,(20H)=65H
3.3.2 算术运算类指令
功能:执行加、减、乘、除法四则运算和加1、减1操作以及 十进制的调整
特点: ✓ 支持8位无符号数操作,借助溢出标志可对带符号数进行
补码运算 ✓ 算术运算类指令执行结果影响PSW
算术运算类指令
加法指令
不带进位加法指令(4)
MOV direct,A ; (A)→direct
MOV direct,Rn;(Rn)→direct, n=0~7
MOV direct1,direct2;
MOV direct,@Ri ; ((Ri))→direct
MOV direct,#data;
#data→direct
例 MOV 30H ,31H ;30H←(31H)
如: MOV A,#2AH MOV DPTR, #1324H
3.2 MCS-51指令寻址方式
2.直接寻址 操作数直接以单元地址形式给出 寻址范围:
(1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外,还 可用寄存器符号的形式给出。
如: MOV A, P0 ; MOV R0, TH0 ;
9.字节交换指令 (1)整字节交换指令 XCH A,Rn XCH A,direct XCH A,@Ri
功能:将累加器A的内容与内部RAM、SFR中的内容互换,影 响标志位
(2) 低半字节交换指令(XCHD) XCHD A,@Ri ;(A)3~0 ((Ri))3~0
功能:累加器A的低四位与片内RAM某单元的低四位交换,高 四位不变
退栈指令 POP direct
例 (SP)=62H, (62H)=70H ,(61H)=30H 时,执行 POP DPH ;((SP)) →DPH, (SP)-1=61H→SP POP DPHL ;((SP)) →DPL, (SP)-1=60H→SP
结果: (DPTR)=7030H, (SP)=60H
相关文档
最新文档