单片机原理第三章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如ADD A, #08H;
十六进制形式为2408H.从记忆和理解的 角度助记符更有优势。
3.1.3 指令的字节数 字节数:指令编译成机器码后在ROM
中占用的空间。 单字节指令(49条) 1 无操作数
如INC DPTR () 2 含有操作数寄存器号
如MOV A, Rn 双字节指令(46条) 三字节指令(16条)
第三章 MCS-51单片机指令系统
3.1 概述
3.1.1MCS-51单片机指令格式
一条汇编语言指令中最多包含4个区段,如下所示: 标号:操作码 目的操作数,源操作数 ;注释 标号与操作码之间“:”隔开; 操作码与操作数之间用“空格”隔开; 目的操作数和源源操作数之间有“,”分隔; 操作数与注释之间用“;”隔开。
3.1.3 指令的字节数 字节数:指令编译成机器码后在ROM中占用
的空间。 单字节指令(49条) 1 无操作数
如INC DPTR (DPTR数据由操作码隐含) 2 含有操作数寄存器号
如MOV A, Rn 双字节指令(46条) 三字节指令(16条)
双字节指令(46条) 操作码字节在前,操作数字节在后。 如:MOV A , #data ;
INC 60H
;将地址60H单元中的内容自加1。
图3.2直接寻址方式示意图
3.2.3 寄存器寻址
由指令指出某一个寄存器中的内容作为操
作数,这种寻址方式称为寄存器寻址。寄存器 一般指累加器A和工作寄存器R0~R7。例如:
MOV A,Rn
MOV Rn,A MOV B,A
;A(Rn) 其中n为0~7之 一,Rn是工作寄存器。
例如MOV A,#20H ;
包含了两个操作数A和#20H,它们之间 用“,”隔开。注释可有可无,加入注释主 要为了便于阅读,程序设计者对指令或程序 段作简要的功能说明,在阅读程序或调试程 序时将会带来很多方便。
3.1.2 指令的三种表示形式
二进制:
十六进制:
助记符:
MCS—51指令系统中共有42种助记符, 代表了33种不同的功能。例如MOV是数据 传送的助记符。
;Rn(A) ;B(A)
3.2.4 寄存器间接寻址方式
由指令指出某一个寄存器的内容作为操作数地址,这 种寻址方式称为寄存器间接寻址。寄存器间接寻址只能 使用寄存器R0或Rl作为地址指针,来寻址内部 RAM(00H~FFH)中的数据。寄存器间接寻址也适用于 访问外部RAM,可使用R0,R1或DPTR作为地址指针。 寄存器间接寻址用符号“@”表示。 例如:
@DPTR。 $ —当前指令的地址。
3.2 寻址方式 (重点掌握)
所谓寻址方式,是指某一个CPU指令系统中规 定的寻找操作数所在地址的方式,或者说通过什 么的方式找到操作数。寻址方式的方便与快捷是 衡量CPU性能的一个重要方面,MCS—51单片 机有七种寻址方式。
3.2.1 立即数寻址
立即寻址方式是操作数包括在指令字节中,指 令操作码后面字节的内容就是操作数本身,其数值由 程序员在编制程序时指定,以指令字节的形式存放在 程序存储器中。立即数只能作为源操作数,不能当作 目的操作数。
MOV 52H,A ;把A的内容传Βιβλιοθήκη Baidu给片内RAM的52H 单元中。
MOV 50H,60H ;把片内RAM字节地址60H单元的内 容送到50H单元中。
MOV IE,#40H ;把立即数40H送到中断允许寄存器 IE。IE为专用功能寄存器,其字节 地址为0A8H。该指令等价于MOV 0A8H,#40H。
标号是由用户定义的符号组成,必须 用英文字母开始(一般大写)。标号可有可无, 若一条指令中有标号,标号代表该指令所 存放的第一个字节存储单元的地址,故标 号又称为符号地址,在汇编时,把该地址 赋值给标号。
操作码是指令的功能部分,不能缺省。
操作数是指令要操作的数据信息。根据 指令的不同功能,操作数的个数有3、2、1 或没有操作数。
三字节指令(16条) 第一个字节为操作码,第2和第3个字节 为操作数或操作数的地址。
如MOV DPTR, #data16 MOV direct, #data CJNE A, #data, rel LCALL addr16
3.1.4 指令的分类 数据传送指令(29条) 算术运算指令(24条) 逻辑操作和环移指令(24条) 控制转移指令(17条) 位操作指令(17条) P440:附录C MCS-51 系列单片机指令表
注:符号的定义;对PSW某些标志位的影响
在分类介绍指令前,先把描述指令的一些符号的意义作一简单介绍。 Rn―当前选定的寄存器区中的8个工作寄存器R0~R7,即n=0~7。 @Ri―表示寄存器间接寻址,当前选定的寄存器区中的2个寄存器R0, R1, i=0、1。 direct—8位内部RAM单元的地址,它可以是一个内部数据区RAM单元 (00H~7FH)或特殊功能寄存器地址(I/O端口、控制寄存器、状态寄 存器80H~0FFH)。 #data—指令中的8位常数(立即数)。 #data16—指令中的16位常数。 addr16—16位的目的地址,用于LJMP、LCALL,可指向64KB程序存储 器的地址空间。 addr11—11位的目的地址,用于AJMP、ACALL指令。目的地址必须与 下一条指令的第一个字节在同一个2KB程序存储器地址空间之内。
rel—8位带符号的相对偏移量字节,用于SJMP和 所有条件转移指令中。偏移量相对于下一条指令的 第一个字节计算,在-128~+127范围内取值。
bit—内部数据RAM或特殊功能寄存器中的可直 接寻址位。
DPTR—数据指针,可用作16位的地址寄存器。 A—累加器 B—寄存器,用于MUL和DIV指令中。 C—进位标志或进位位。 @—间接寄存器或基址寄存器的前缀,如@Ri,
例如: MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H
立即寻址示意图如3.1所示。
注意:直接数和立即数寻址方式的区别!
图3.1 立即寻址示意图
3.2.2 直接寻址
在指令中含有操作数的直接地址,该地址指出了参与 操作的数据所在的字节地址或位地址。 例如:
MOV A,52H ;把片内RAM字节地址52H单元的内 容送累加器A中。
十六进制形式为2408H.从记忆和理解的 角度助记符更有优势。
3.1.3 指令的字节数 字节数:指令编译成机器码后在ROM
中占用的空间。 单字节指令(49条) 1 无操作数
如INC DPTR () 2 含有操作数寄存器号
如MOV A, Rn 双字节指令(46条) 三字节指令(16条)
第三章 MCS-51单片机指令系统
3.1 概述
3.1.1MCS-51单片机指令格式
一条汇编语言指令中最多包含4个区段,如下所示: 标号:操作码 目的操作数,源操作数 ;注释 标号与操作码之间“:”隔开; 操作码与操作数之间用“空格”隔开; 目的操作数和源源操作数之间有“,”分隔; 操作数与注释之间用“;”隔开。
3.1.3 指令的字节数 字节数:指令编译成机器码后在ROM中占用
的空间。 单字节指令(49条) 1 无操作数
如INC DPTR (DPTR数据由操作码隐含) 2 含有操作数寄存器号
如MOV A, Rn 双字节指令(46条) 三字节指令(16条)
双字节指令(46条) 操作码字节在前,操作数字节在后。 如:MOV A , #data ;
INC 60H
;将地址60H单元中的内容自加1。
图3.2直接寻址方式示意图
3.2.3 寄存器寻址
由指令指出某一个寄存器中的内容作为操
作数,这种寻址方式称为寄存器寻址。寄存器 一般指累加器A和工作寄存器R0~R7。例如:
MOV A,Rn
MOV Rn,A MOV B,A
;A(Rn) 其中n为0~7之 一,Rn是工作寄存器。
例如MOV A,#20H ;
包含了两个操作数A和#20H,它们之间 用“,”隔开。注释可有可无,加入注释主 要为了便于阅读,程序设计者对指令或程序 段作简要的功能说明,在阅读程序或调试程 序时将会带来很多方便。
3.1.2 指令的三种表示形式
二进制:
十六进制:
助记符:
MCS—51指令系统中共有42种助记符, 代表了33种不同的功能。例如MOV是数据 传送的助记符。
;Rn(A) ;B(A)
3.2.4 寄存器间接寻址方式
由指令指出某一个寄存器的内容作为操作数地址,这 种寻址方式称为寄存器间接寻址。寄存器间接寻址只能 使用寄存器R0或Rl作为地址指针,来寻址内部 RAM(00H~FFH)中的数据。寄存器间接寻址也适用于 访问外部RAM,可使用R0,R1或DPTR作为地址指针。 寄存器间接寻址用符号“@”表示。 例如:
@DPTR。 $ —当前指令的地址。
3.2 寻址方式 (重点掌握)
所谓寻址方式,是指某一个CPU指令系统中规 定的寻找操作数所在地址的方式,或者说通过什 么的方式找到操作数。寻址方式的方便与快捷是 衡量CPU性能的一个重要方面,MCS—51单片 机有七种寻址方式。
3.2.1 立即数寻址
立即寻址方式是操作数包括在指令字节中,指 令操作码后面字节的内容就是操作数本身,其数值由 程序员在编制程序时指定,以指令字节的形式存放在 程序存储器中。立即数只能作为源操作数,不能当作 目的操作数。
MOV 52H,A ;把A的内容传Βιβλιοθήκη Baidu给片内RAM的52H 单元中。
MOV 50H,60H ;把片内RAM字节地址60H单元的内 容送到50H单元中。
MOV IE,#40H ;把立即数40H送到中断允许寄存器 IE。IE为专用功能寄存器,其字节 地址为0A8H。该指令等价于MOV 0A8H,#40H。
标号是由用户定义的符号组成,必须 用英文字母开始(一般大写)。标号可有可无, 若一条指令中有标号,标号代表该指令所 存放的第一个字节存储单元的地址,故标 号又称为符号地址,在汇编时,把该地址 赋值给标号。
操作码是指令的功能部分,不能缺省。
操作数是指令要操作的数据信息。根据 指令的不同功能,操作数的个数有3、2、1 或没有操作数。
三字节指令(16条) 第一个字节为操作码,第2和第3个字节 为操作数或操作数的地址。
如MOV DPTR, #data16 MOV direct, #data CJNE A, #data, rel LCALL addr16
3.1.4 指令的分类 数据传送指令(29条) 算术运算指令(24条) 逻辑操作和环移指令(24条) 控制转移指令(17条) 位操作指令(17条) P440:附录C MCS-51 系列单片机指令表
注:符号的定义;对PSW某些标志位的影响
在分类介绍指令前,先把描述指令的一些符号的意义作一简单介绍。 Rn―当前选定的寄存器区中的8个工作寄存器R0~R7,即n=0~7。 @Ri―表示寄存器间接寻址,当前选定的寄存器区中的2个寄存器R0, R1, i=0、1。 direct—8位内部RAM单元的地址,它可以是一个内部数据区RAM单元 (00H~7FH)或特殊功能寄存器地址(I/O端口、控制寄存器、状态寄 存器80H~0FFH)。 #data—指令中的8位常数(立即数)。 #data16—指令中的16位常数。 addr16—16位的目的地址,用于LJMP、LCALL,可指向64KB程序存储 器的地址空间。 addr11—11位的目的地址,用于AJMP、ACALL指令。目的地址必须与 下一条指令的第一个字节在同一个2KB程序存储器地址空间之内。
rel—8位带符号的相对偏移量字节,用于SJMP和 所有条件转移指令中。偏移量相对于下一条指令的 第一个字节计算,在-128~+127范围内取值。
bit—内部数据RAM或特殊功能寄存器中的可直 接寻址位。
DPTR—数据指针,可用作16位的地址寄存器。 A—累加器 B—寄存器,用于MUL和DIV指令中。 C—进位标志或进位位。 @—间接寄存器或基址寄存器的前缀,如@Ri,
例如: MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H
立即寻址示意图如3.1所示。
注意:直接数和立即数寻址方式的区别!
图3.1 立即寻址示意图
3.2.2 直接寻址
在指令中含有操作数的直接地址,该地址指出了参与 操作的数据所在的字节地址或位地址。 例如:
MOV A,52H ;把片内RAM字节地址52H单元的内 容送累加器A中。