【ch03】单片机的指令系统_第1页
【ch03】单片机的指令系统_第2页
【ch03】单片机的指令系统_第3页
【ch03】单片机的指令系统_第4页
【ch03】单片机的指令系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章单片机的指令系统工业和信息化部“十四五”规划教材单片机原理及应用01指令系统简介80C51指令格式

微型计算机的一条指令对应着一种基本操作。由于计算机只能识别二进制数,所以指令也必须用二进制形式来表示,称为指令的机器码或机器指令。指令系统简介以助记符表示的指令是计算机的汇编语言,使用汇编语言编写的程序称为汇编程序,汇编语言指令格式如下:80C51指令系统概况按照机器码字节个数,指令可以分为单字节、双字节、三字节三类指令,80C51单片机指令系统包括49条单字节指令、46条双字节指令和16条三字节指令。指令系统简介Rn:(n=0~7),当前选定的工作寄存器R0~R7Ri:(i=0,1),当前选定的工作寄存器中R0、R1,一般用于间接寻址direct:内部RAM单元或特殊寄存器的地址(8位)

#data:8位立即数#data16:16位立即数addr16:16位目的地址addr11:11位目的地址指令系统简介指令助记符中的一些常用符号指令系统简介

指令助记符中的一些常用符号rel:带符号的8位偏移量。rel的范围为(-128~+127)bit:内部RAM或特殊功能寄存器中的位地址@:间接寻址寄存器的前缀,如@Ri、@DPTR/:位操作数的前缀,表示对该位操作数取反,如/bit(x):寄存器或存储单元x的内容(x)):以寄存器或存储单元x的内容作为地址的存储单元的内容→:数据传送方向02寻址方式立即数寻址在立即数寻址方式中,指令大多是双字节的。一般地,第一字节是操作码,第二字节是操作数,该操作数直接参与操作,所以又称立即数。立即数前面必须加“#”号,以区别立即数和直接地址。寻址方式

直接寻址直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在80C51单片机中,可以直接寻址的存储器主要有内部3AHRAM区和特殊功能寄存器(SFR)区。寻址方式寄存器寻址寄存器寻址是指将操作数存放于寄存器中,能用于该种寻址的寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、数据指针寄存器DPTR等。寻址方式寄存器间接寻址寄存器间接寻址是指将存放操作数的内存单元地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,其次由该地址找到操作数并完成相应操作。寻址方式变址寻址变址寻址是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。在80C51中,DPTR或PC作基址寄存器,累加器A作变址寄存器。该类寻址方式主要用于ROM查表操作。寻址方式

相对寻址相对寻址方式是为了实现程序的相对转移而设计的。相对寻址方式以PC的当前值(当前值是指执行完这条相对转移指令时PC的字节地址)作为基地址,加上指令中给定的偏移量所得结果作为转移地址。寻址方式位寻址上述介绍的指令都是按字节进行的操作,位寻址是指按字节的位进行的操作。80C51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当把某一位作为操作数时,这个操作数的地址称为位地址。寻址方式寻址方式位寻址上述介绍的指令都是按字节进行的操作,位寻址是指按字节的位进行的操作。80C51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当把某一位作为操作数时,这个操作数的地址称为位地址。03数据传送类指令以累加器A为目的地址的传送指令(4条)功能:把源操作数的内容送入寄存器ACC。内部RAM传送指令以通用寄存器Rn(n=0~7)为目的地址的传送指令(3条)功能:把源操作数的内容送入当前一组工作寄存器区的R0~R7中的某一个寄存器。注意,没有形如“MOVRn,Rn”的指令。以直接地址为目的地址的传送指令(5条)功能:把源操作数送入直接地址指出的存储单元。内部RAM传送指令以寄存器间接地址为目的地址的传送指令(3条)功能:读外部RAM存储器或I/O中的一字节,或把A中一字节的数据写到外部RAM存储器或I/O中。MOV后“X”表示单片机访问的是外部RAM存储器或IO。外部RAM传送指令20%30%40%50%

字节交换指令(3条)

半字节交换指令(1条)

累加器A中高4位和低4位交换(1条)数据交换类指令20%30%40%50%1.MOVCA,@A+PC以PC作基址寄存器,A的内容作为无符号整数和PC中的内容(下一条指令的起始地址)相加后得到一个16位的地址,该地址指出的程序存储单元的内容送到累加器A。2.MOVCA,@A+DPTR以DPTR作为基址寄存器,A的内容作为无符号数和DPTR的内容相加得到一个16位的地址,把由该地址指出的程序存储器单元的内容送到累加器A。查表指令进栈指令先将栈指针SP加1,然后把direct中的内容送到SP指示的内部RAM单元中。堆栈操作指令出栈指令SP指示的栈顶(内部RAM单元)内容送入direct字节单元中,栈指针SP减1。04算术运算类指令1.不带进位的加法指令这组加法指令的功能是把所指出的源操作数内容和累加器A的内容相加,其结果放在累加器A中。执行以上指令时,如果累加器A的D7向更高位有进位,则进位标志位CY置1,否则清0。加法指令2.带进位的加法指令这4条指令的操作,除了指令中所规定的两个操作数参加运算,还要加上进位标志位CY的值。注意这里所指的CY值,是该指令执行前的值。当CY=0时,这4条指令的执行结果和不带进位的加法指令一样。1.带进位减法指令这组带进位减法指令是从累加器A中减去指定的源操作数和进位标志,结果存于累加器A中。源操作数允许有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址等寻址方式。减法指令2.减1指令这组指令的功能是将指定的操作数的内容减1,结果再送回操作数中。若操作数原来为00H,减1后下溢为0FFH,但不影响CY(A减1影响P除外)。当本指令用于修改输出口,用作原始口数据的值将从Pi(i=0,1,2,3)口锁存器读入,而不是从引脚读入。乘法指令这条指令的功能是把累加器A和寄存器B中的无符号8位整数相乘,所得16位积的低位字节在累加器A中,高位字节在B中。如果积大于(0FFH),则置位溢出标志位OV,否则清“0”OV。进位标志位CY总是清“0”。因此,可以在乘法指令运算之后,通过对OV的检测来决定是否有必要保存寄存器B的内容。除法指令这条指令的功能是把累加器A中的8位无符号整数除以寄存器B中的8位无符号整数,所得商的整数部分存放在累加器A中,余数存放在寄存器B中。并将CY和OV清“0”。只有当除数B=0时,OV才置“1”,表示结果无意义,且A和B中内容不定。05逻辑运算类指令1.逻辑与指令这组指令的功能是在指出的操作数之间以位为基础的逻辑与操作,结果存放在目的操作数中。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址等寻址方式。基本逻辑操作2.逻辑或指令这组指令的功能是在所指出的操作数之间执行以位为基础的逻辑或操作,结果存到目的操作数中。操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址方式。同ANL类似,用于修改输出口数据时,原始数据值为I/O口锁存器内容。

循环移位指令

80C51单片机中,对累加器A的逻辑移位命令共有四条,分别为RL、RR、RLC、RRC,这四条指令的操作也不影响其他标志位,如图3-9所示。其他逻辑操作06控制转移类指令在编写汇编程序时,对于初学者,无条件转移类指令是比较容易出错的一类指令。因此,本节的无条件转移指令给出了两种格式:汇编指令格式和机器指令变格式,以便于初学者在学习过程中,进行比较。汇编指令格式:AJMPaddrll指令格式中的addrll是指给出的16位地址中,仅仅低11位有效,并不是表示在汇编指令中仅给出11位地址。无条件转移指令20%30%40%50%零条件转移指令在80C51的标志位中,没有零标志。这两条指令在执行时,根据累加器A的内容是零或非零,从而决定是否转移。有的指令虽然其执行结果并不影响任何标志位,但只要能影响累加器A的内容,就可以根据需要接着安排这种零条件转移指令。比较不相等转移指令这组指令是先对两个指定的操作数进行比较,根据比较的结果来决定是否转移到目的地址。若两个操作数不相等,则按给定的偏移量实现转移,并且还要根据两个操作数的相对大小来置位进位标志位CY。条件转移指令调用指令

指令格式中的addrll是指给出的16位地址中,仅仅低11位有效,并不是表示在汇编指令中仅给出11位地址,可参见“绝对转移”的详细解释。调用及返回指令07位操作指令位传送指令这组指令主要用于直接寻址位与位累加器C之间的数据传送。其功能是由源操作数指出的位变量送到目的操作数的位单元中。其中一个操作数必须为位累加器C,另一个可以是任何直接寻址的位,也就是说位变量传送必须经过C进行。位操作指令位修改指令这组指令将操作数指出的位清“0”、取反、置“1”,不影响其他标志位。当直接寻址位为P0~P3端口的某一位时,具有“读出-修改-写入”的操作功能。20%30%40%50%位逻辑操作指令这组指令功能是,如果源位的布尔值是逻辑0,则进位标志位清“0”,否则进位标志位保持不变。操作数前的斜线“/”表示用寻址位的逻辑“非”作源值,但不影响源位本身值,不影响其他的标志位。源操作数只有直接位寻址方式。位判断转移类指令第1~2条指令是判断进位标志位CY是否为“1”或“0”转移,当条件满足时转移,不满

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论