MCS-51单片机的汇编语言指令系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.3 寄存器寻址方式 操作数在寄存器中
MOV A,R0
寻址范围: (1)工作寄存器:4组R0~R7 (2)部分特殊功能寄存器:如A、B、DPTR等
3.2.4 寄存器间接寻址方式
寄存器中存放的是操作数的地址, 即操作数是通过寄存器间接得到的 如:MOV A,@R0
寻址范围: (1)内部RAM低128单元 (2)外部RAM 64KB 如 MOVX A,@DPTR (3)外部RAM的低256单元 如:MOV A,@R0 (4)堆栈操作指令(PUSH、POP),以堆栈作间址
如: INC DPTR 1010 0011
MOV A,Rn
无操作数 含有操作数
1110 1rrr
一字节指令49条
2、双字节指令 包括二个字节,其中第一个字节为操作码,
第二个字节为操作数
如:MOV A,#data 指令代码:0111 0100
立即数
双字节指令共45条
3、三字节指令 三字节指令中,操作码占一个字节 操作数占两个字节
目的地址=转移指令地址+转移指令字节数+ rel 偏移量rel是一个带符号的8位二进制补码数,表示的数 的范围是:-128~+127
3.2.7 位寻址方式 位处理功能,可以对数据位进行操作
如:MOV C,3AH 把3AH位的状态送进位位C 寻址范围: (1)内部RAM中的位寻址区
单元地址为20H~2FH,共16个单元128位,位地址 是00H~7FH (2)专用寄存器的可寻址位 可供寻址的专用寄存器共有11个,实有寻址位83位
第3章 MCS-51单片机的汇编语言指令系统
3.1 指令格式及其符号说明
单片机汇编语言:助记符语言 单片机的指令:是CPU用于控制功能部件完成某一
指定动作的指示和命令 指令系统:单片机全部指令的集合
111条指令,实现51种基本操作
3.1.1 指令格式
指令格式:指令的表示方法
两部分
操作码:用来规定指令进行什么操作 操作数:指令操作的对象
ROM
故指令执行的结果是A的内容为38H
寻址方式说明: (1)只能对程序存储器进行寻址,寻址范围64KB (2)变址寻址的指令只有3条:
MOVC A,@A+DPTR MOVC A, @A+PC JMP @A+DPTR (3)变址寻址的指令都是一字节指令
3.2.6 相对寻址方式 为解决程序转移而专门设置的,为转移指令所采用
• 汇编语言指令格式 [标号:] 操作码助记符 [目的操作数] [,源操作数] [:注释]
指令的符 号地址
确定指令进 行何种操作
指令操作 的对象
指令操作 的对象
对指令功 能的说明
注意:注释编写的时候要注意一定要以分号“;”开始 。
3.1.1 常用符号说明
3.1.3 指令的字节
1、单字节指令
指令的指令代码只有一个字节,操作码和操作数信息同 在其中。
操作数既可能是数据,也可能是地址
如: ANL direct , #data 0101 0011 直接地址 立即数
三字节指令共17条
3.2 单片机寻址方式 寻址:就是如何得到操作数的所在单元的地址 3.2.1 立即寻址方式
操作数在指令中直接给出, 出现在指令中的操作数称为立即数 如;MOV A,#data
源操作数:累加器A、通用寄存器Rn、直接地址 direct、 间址寄存器和立即数
目的操作数:累加器A、通用寄存器Rn、直接地址 direct、间址寄存器
1)片内数据存储器传送指令(16条)
(1)以A为目的操作数的指令(4条)
MOV A , #data ;A← data MOV A , direct ;A←(direct) MOV A , Rn ;A←(Rn) MOV A , @Ri ;A←((Ri))
例3.2 指令: MOV R2 , #7AH MOV R2 , 7AH MOV R3 , A
;R2← 7AH ;R2←(7AH) ;R3←(A)
立即寻址 直接寻址 寄存器寻址
(3)以直接地址为目的操作数的指令(5条)
MOV direct , #data ;direct←data MOV direct , direct ;direct←(direct) MOV direct , A ;direct←(A) MOV direct , Rn ;direct←(Rn) MOV direct , @Ri ;direct←((Ri))
的位5,表示为PSW.5
3.3 MCS-51单片机指令系统
指令111条,分为五大类: 数据传送类指令(29)条 算术运算类指令(24条) 逻辑运算及移位类指令(24条) 控制转移类指令(17条) 位操作类指令(17条)
3.3.1 数据传送类指令(29条) 1. 普通传送指令
MOV <目的操作数> ,<源操作数>
寻址位在指令中的4种表示方法: (1)直接使用位地址。例如PSW寄存器位5地址为0D5H (2)位名称表示方法。例如PSW寄存器位5是F0标志位
用F0表示 (3)单元地址加位数的表示方法。例如,0D0H单元(即PSW
寄存器)位5,为0D0H.5 (4)专用寄存器符号加位数的表示方法。例如PSW寄存器
MOV A, #3AH
MOV DPTR , #data16
3.2.2 直接寻址方式
操作数直接以单元地址的形式给出
如:MOV A,3AH 寻址范围: (1)内部RAM低128单元 (2)特殊功能寄存器
例如: MOV A , 50H MOV A , P1 MOV A, 90H 上面指令中的50H、P1、90H均是直接寻址方式。
例3.1 指令: MOV A , #40H MOV A , 40H MOV A , R0 MOV A , @R0
;A← 40H
立即寻址
;A←(40H) 直接寻址
;A←(R0) 寄存器寻址
;A←((R0)) 寄存器间接寻址
(2)以Rn为目的操作数的指令(3条)
MOV Rn , #data ;Rn← data MOV Rn , direct ;Rn←(direct) MOV Rn , A ;Rn←(A)
寄存器的间接寻址方式
3.2.5 变址寻址方式 变址寻址是为了访问程序存储器中的数据表格
如;MOVC A,@A+DPTR 把DPTR和A的内容相加,再把所得到的程序存储器地 址单元的内容送A
假定指令执行前(A)=02H,(DPTR)=0100H 则操作数地址为0100H+02H=0102H
假定指令执行前(A)=02H,(DPTR)=0100H 则操作数地址为0100H+02H=0102H