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