第2章单片机的指令系统 4本章学习目标: 铛了解指令及指令系统常识 铛熟悉指令中常用符号 在理解的基础上牢记7种寻址方式 铛熟悉各类指令的功能及应用范围 塾能使用指令完成各种常规任务 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
本章学习目标 : 了解指令及指令系统常识 熟悉指令中常用符号 在理解的基础上牢记7种寻址方式 熟悉各类指令的功能及应用范围 能使用指令完成各种常规任务 第2章 单片机的指令系统
2.1指令系统概述与寻址方式 2.1.1指令系统概述 1.指令 单片机是靠软件和硬件结合起来完成控制功能的,软 件的基础就是指令和指令系统。 指令是计算机设计人员预先设计好的用以完成某种操 作的命令。 例如用计算机指令来完人什么是指令? 机器 代码表示如下 0111010000001010 00000020,结果存A中 机器语言指令 JUU 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
2.1.1指令系统概述 2.1 指令系统概述与寻址方式 1.指令 单片机是靠软件和硬件结合起来完成控制功能的,软 件的基础就是指令和指令系统。 指令是计算机设计人员预先设计好的用以完成某种操 作的命令。 例如用计算机指令来完成10+20的加法运算,用机器 代码表示如下: 01110100 00001010 ;把10送累加器A中 00100100 00010100 ;A加20,结果存A中 什么是指令? 机器语言指令
用二进制编码表示的,能够被计算机直接识别和执行的语 言称为机器语言。它不便于记忆、查错和修改。 用助记符、符号和数字来表示指令的程序语言,称为汇编 语言。它与机器语言指令一一对应,便于理解和记忆。上面 两条指令用汇编语言可表示为: MOV A, 10 ADD A,#20 查找附录A,可以得到 什么是机器语言?)器代码如 下: 74H OAH 24H14H 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
用二进制编码表示的,能够被计算机直接识别和执行的语 言称为机器语言。它不便于记忆、查错和修改。 用助记符、符号和数字来表示指令的程序语言,称为汇编 语言。它与机器语言指令一一对应,便于理解和记忆。上面 两条指令用汇编语言可表示为: MOV A, #10 ADD A, #20 查找附录A,可以得到这两条指令的十六进制机器代码如 下: 74H 0AH 24H 14H 什么是机器语言?
机器语言是计算机唯一能够识别和执行的语言,因而 我们编写的汇编语言程序必须通过翻译将其转换为机器 语言才能被计算机执行,这一翻译过程称为汇编。 汇编语言是一种面向机器的语言,它不能在不同类型 的计算机上互相移植; 高级语言是独立于机器的,即用高级语言编写的程序 可以方便地移植到不同的单片机上。针对单片机的主要 有C(C51)语言和PLM语言, 本教材我们只学习汇编语言。因汇编语言编写程序时 是面向机器的,结合单片机的硬件资源来学习汇编语言, 对初学者来说是最合适不过的了。下面我们给出典型的 汇编语言指令的书写格式: 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
机器语言是计算机唯一能够识别和执行的语言,因而 我们编写的汇编语言程序必须通过翻译将其转换为机器 语言才能被计算机执行,这一翻译过程称为汇编。 汇编语言是一种面向机器的语言,它不能在不同类型 的计算机上互相移植; 高级语言是独立于机器的,即用高级语言编写的程序 可以方便地移植到不同的单片机上。针对单片机的主要 有C(C51)语言和PLM语言, 本教材我们只学习汇编语言。因汇编语言编写程序时 是面向机器的,结合单片机的硬件资源来学习汇编语言, 对初学者来说是最合适不过的了。下面我们给出典型的 汇编语言指令的书写格式:
方括号内的字段可以省略 [标号:]操作码[操作数1,操作数2,操作数3][;注释] NEXT: MQV RO ;A←(R0) 标号是一个名MOV是操作码、飞表示指令质和功能,此处 首字符必须其功能是将氏的内容送到如器A中, 线,但系统保留字不能个如操作 A是数据传送的R0是数据的来源,称 为目的摸为源操作数 合法字符举例:L0OP,NEXT1, START 非法字符举例:2SUM,S+L,AD,DB 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
[标号:] 操作码 [操作数1,操作数2,操作数3][;注释] NEXT: MOV A, R0 ;A←(R0) 合法字符举例:LOOP,NEXT_1,START 非法字符举例:2SUM,S+L,ADD,DB 方括号内的字段可以省略 标号是一个名字,用来标明指令的地址,由1~6个字符组成, 首字符必须是字母,后面可跟数字和字母字符,也可以是下划 线,但系统保留字不能作标号,如操作码等。 MOV是操作码,它表示指令的性质和功能,此处 其功能是将R0中的内容送到累加器A中, A是数据传送的目的地,称 为目的操作数 R0是数据的来源,称 为源操作数
2.指令系统 台计算机的CPU所能执行的全部指令的集合称为这个 CPU的指令系统。指令系统是开发和生产厂商定义的,如要 使用其单片机,用户就必须了解和遵循这些指令标准,要 掌握某种(类)单片机,指令系统的学习是必须的。 80C51共有111条指令: 其指令字节少,单字节指令49条,双字节指令45条 字节指令17条; 指令执行时间短,单机器周期指令64条,双机器周期 指令45条,4机器周期指令2条, 该指令系统还有极为丰富的位操作指令,充分体现了 单片机面向控制的特点。 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
2.指令系统 一台计算机的CPU所能执行的全部指令的集合称为这个 CPU的指令系统。指令系统是开发和生产厂商定义的,如要 使用其单片机,用户就必须了解和遵循这些指令标准,要 掌握某种(类)单片机,指令系统的学习是必须的。 80C51共有111条指令: ⚫ 其指令字节少,单字节指令49条,双字节指令45条, 三字节指令17条; ⚫ 指令执行时间短,单机器周期指令64条,双机器周期 指令45条,4机器周期指令2条, ⚫ 该指令系统还有极为丰富的位操作指令,充分体现了 单片机面向控制的特点
3.指令系统中常用符号说明 Rn当前选中的工作寄存器组区的8个寄存器R0R7(n=07)之 Ri 当前选中的工作寄存器组区中的寄存器R0或R1(i=0,1) direct8位片内RAM单元的直接地址。包括特殊功能寄存器地址 #data指令中的8位立即数 #data1指令中的16位立即数 adr11用于ACAL和AJMP指令中的11位目的地址,该地址必须放在与下条指令第一个字 节同在一个2KB的ROM空间之中 ad用于1(AL和MP指令中的16位目的地址,该地址在64K8的RM空间内 re1补码形式的8位地址偏移量。用于所有的条件转移和SJMP指令中,以下一条指令 的第一个字节地址为基准,其值在-128+127范围内 @ 寄存器间接寻址或变址寻址的前缀 bit|内部RAM或SFR中的可直接寻址位 布尔处理器的累加器也就是进位/借位标志CY 某地址单元或寄存器中的内容 ( ×)以×单元或寄存器中的内容为地址间接寻址单元的内容 将箭头右边的内容送入箭头左边的单元 十一五”国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
Rn 当前选中的工作寄存器组区的8个寄存器R0~R7(n=0~7)之一 Ri 当前选中的工作寄存器组区中的寄存器R0或R1(i=0,1) direct 8位片内RAM单元的直接地址。包括特殊功能寄存器地址 #data 指令中的8位立即数 #data1 6 指令中的16位立即数 addr11 用于ACALL和AJMP指令中的11位目的地址,该地址必须放在与下条指令第一个字 节同在一个2KB的ROM空间之中 addr16 用于LCALL和LJMP指令中的16位目的地址,该地址在64KB的ROM空间内 rel 补码形式的8位地址偏移量。用于所有的条件转移和SJMP指令中,以下一条指令 的第一个字节地址为基准,其值在-128~+127范围内 @ 寄存器间接寻址或变址寻址的前缀 bit 内部RAM或SFR中的可直接寻址位 C 布尔处理器的累加器也就是进位/借位标志CY (×) 某地址单元或寄存器中的内容 ((×)) 以×单元或寄存器中的内容为地址间接寻址单元的内容 ← 将箭头右边的内容送入箭头左边的单元 3.指令系统中常用符号说明
2.1.2寻址方式 对于一条汇编语言指令来说{由操作码指出 一是要说明进行什么操作一 二是要指出参与操作的数据的值是多少或者到何处取得, 以及操作结果放到何处。 由寻址方式决定 寻址方式就是寻找操作数的方法。 在计算机中寻址方式越多,操作数的寻找越容易,程 序设计也就越方便。 51系列单片机共有7种寻址方式,分别为立即数寻址、 寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相 对寻址、位寻址。 对于两操作数指令,源操作数和目的操作数都有寻址 方式,我们下面提到的都是源操作数的寻址方式。 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
对于一条汇编语言指令来说,有两个问题要解决: ◆ 一是要说明进行什么操作 ◆ 二是要指出参与操作的数据的值是多少或者到何处取得, 以及操作结果放到何处。 寻址方式就是寻找操作数的方法。 在计算机中寻址方式越多,操作数的寻找越容易,程 序设计也就越方便。 51系列单片机共有7种寻址方式,分别为立即数寻址、 寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相 对寻址、位寻址。 对于两操作数指令,源操作数和目的操作数都有寻址 方式,我们下面提到的都是源操作数的寻址方式。 2.1.2 寻址方式 由操作码指出 由寻址方式决定
1.立即数寻址 在指令中直接给出参与操作的数据,这种寻址方式称 为立即数寻址。这一直接给出的数据称为立即数,立即 数前要加上“#”符号,例如: MOv A,#OEH ;A←0EH 将8位的立即数0EH送 到累加器A MOV DPTR, #2100H DPTR←2100H 将16位的立即数2100H送到数据指针寄存器 DPTR,立即数的高8位21H装入DPH,低8位 00H装入DPL。 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
1.立即数寻址 在指令中直接给出参与操作的数据,这种寻址方式称 为立即数寻址。这一直接给出的数据称为立即数,立即 数前要加上“#”符号,例如: MOV A,#0EH ;A←0EH MOV DPTR,#2100H ;DPTR←2100H 将8位的立即数0EH送 到累加器A 将16位的立即数2100H送到数据指针寄存器 DPTR,立即数的高8位21H装入DPH,低8位 00H装入DPL
2.寄存器寻址 参与操作的数据由寄存器给出,这种寻址方式称为寄 存器寻址。 由于寄存器在CP的内部,所以采用该寻址方式可以获 得较高的运算速度,可用于该寻址方式的寄存器有ROR7 DPTR、A、B。 如:MOVA,R1;A←(R1) 该指令将R1内的数据传送到累加器A中,源操作数R1 和目的操作数均采用了寄存器寻址。 再比如: INC DPTR: DPTR+-(DPTR) +1 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
2.寄存器寻址 参与操作的数据由寄存器给出,这种寻址方式称为寄 存器寻址。 由于寄存器在CPU的内部,所以采用该寻址方式可以获 得较高的运算速度,可用于该寻址方式的寄存器有R0~R7、 DPTR、A、B。 如:MOV A,R1 ;A← (R1) 该指令将R1内的数据传送到累加器A中,源操作数R1 和目的操作数均采用了寄存器寻址。 再比如: INC DPTR ;DPTR←(DPTR)+1