单片机原理与项目实践3第三章-MCS-51单片机指令系统与汇编语言课件_第1页
单片机原理与项目实践3第三章-MCS-51单片机指令系统与汇编语言课件_第2页
单片机原理与项目实践3第三章-MCS-51单片机指令系统与汇编语言课件_第3页
单片机原理与项目实践3第三章-MCS-51单片机指令系统与汇编语言课件_第4页
单片机原理与项目实践3第三章-MCS-51单片机指令系统与汇编语言课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 MCS-51单片机指令 系统与汇编语言主 要 内 容3.1 MCS-51指令系统概述3.2 MCS-51指令系统简介3.3汇编语言的伪指令3.4 MCS-51汇编语言程序实例3.1 MCS-51指令系统概述 指令格式是指令的结构形式。通常,指令可分为操作码和操作数两部分。其中操作码部分用于指示机器执行哪种操作,操作数部分用来指示参加运算的操作数或操作数所在的地址,又可分为目的操作数和源操作数。3.1.1指令格式汇编指令的格式3.1.1指令格式 标号:操作码目的操作数,源操作数;注释标号3.1.1指令格式由用户定义的符号组成,它代表当前指令的首字节在存储器单元中的存放地址。标号必须由英文

2、字母开始,以冒号结尾。操作码3.1.1指令格式表示指令进行哪种操作,用助记符形式给出,助记符一般为英文单词的缩写。目的操作数3.1.1指令格式用来存放最终结果的操作数,源操作数用来提供数据来源。任何指令都是“从源操作数到目的操作数”的操作,注意书写顺序不能颠倒。3.1 MCS-51指令系统概述3.1.2操作数的简记符号1#data表示一个8位的立即数2#data16表示一个16位的立即数3Rn表示R0R7中的某个工作寄存器(n=07)4Ri表示R0或R1工作寄存器(i=0或1)5direct表示128B范围内某个内部RAM的具体地址或SFR的名称6addr16表示64KB范围内某个外部RAM或

3、ROM的地址7addr11表示2KB范围内某个外部RAM或ROM的地址8rel表示-128+127字节范围内某个RAM或ROM地址的偏移量9bit表示RAM或SFR中某个单元的地址10/表示随后的位状态取反11$表示当前指令的首地址12表示寄存器中的数据作为单元地址3.1 MCS-51指令系统概述3.1.3寻址方式1.直接寻址指令中包含direct形式的操作数的寻址方式称为直接寻址。这里direct可是片内RAM的字节地址,也可以是特殊功能寄存器的名。3.1.3 寻址方式2.寄存器寻址指令中包含通用寄存器形式的操作数的寻址方式称为寄存器寻址方式。这里的通用寄存器是指A、B、C、Rn、DPTR。

4、3.1.3 寻址方式3.寄存器间接寻址指令中包含“间接寄存器”形式的操作数的寻址方式称为寄存器间接寻址方式。这里的间接寄存器是指Ri和DPTR。3.1.3 寻址方式3.寄存器间接寻址由于52系列单片机具有两个片内高128字节空间,一个属于片内RAM,另一个属于特殊功能寄存器。为此必须采用不同的寻址方式访问,其中片内RAM只能采用寄存器间接寻址方法访问,而特殊功能寄存器只能采用直接寻址方法访问。而片内低128字节的空间,寄存器间接寻址和直接寻址都可以采用。3.1.3 寻址方式4.立即寻址指令中包含立即数形式的操作数的寻址方式称为立即寻址方式。这里的立即数包括#data和#data16两种形式。3

5、.1.3 寻址方式5.变址寻址指令中包含“A+变址寄存器”形式的操作数的寻址方式称为变址寻址方式。这里的变址寄存器是指DPTR、PC。3.1.3 寻址方式6.位寻址指令中包含bit形式的操作数的寻址方式称为位寻址方式。这里位地址可以是片内RAM低128字节中的可位寻址区内的地址,也可以是SFR中具有位地址的位单元地址或位名称。3.1.3 寻址方式7.相对寻址指令中包含rel形式的操作数的寻址方式称为相对寻址方式。相对寻址方式是为了程序的相对转移而设计的,它以PC的内容为基址,与指令中给出的偏移量rel进行合成,得到转移目的地址,进而改变PC值,实现程序的跳转。3.1.3 寻址方式7.相对寻址值

6、得注意的是,由于rel只能形成-128+127字节的跳转量,因此编程时必须考虑当前指令行与被跳转指令行之间的地址差异不能超限。3.2 MCS-51指令系统简介MCS-51单片机的指令按功能可以分为4类,分别是数据传送指令、算术运算指令、逻辑操作和移位指令、控制转移指令。3.2.1数据传送指令类型助记符格式执行的操作指令说明片内RAM传送MOV A,RnARn以累加器A为目的操作数的传送MOV A,directAdirectMOV A,RiA(Ri)MOV A,#data AdataMOV Rn,ARnA以Rn为目的操作数的传送MOV Rn,directRndirectMOV Rn,#dataR

7、ndataMOV direct,AdirectA以direct为目的操作数的传送MOV direct,RndirectRnMOV direct,directdirectdirectMOV direct,Ridirect(Ri)MOV direct,#datadirectdataMOV Ri,A(Ri)A以Ri为目的操作数的传递MOV Ri,direct(Ri)directMOV Ri,#data(Ri)dataMOV DPTR,#data16DPTRdata16以DPTR为目的操作数的传递MOV C,bitCbit位地址传送MOV bit,CbitCMOVX A,RiA(Ri)以累加器A为目的

8、操作数的传递MOVX A,DPTRA(DPTR)MOVX Ri,A(Ri)A以Ri为目的的操作数的传送MOVX DPTR,A(DPTR)A以DPTR为目的操作数的传送ROM传送MOVC A,A+PCA(A+PC)以累加器A为目的操作数的传送MOVC A,A+DPTRA(A+DPTR)堆栈指令PUSH directSPSP+1(SP)direct堆栈的入栈和出栈操作POP directdirect(SP)(SP)SP-1数据交换XCH A,RnARn数据相互交换XCH A,RiA(Ri)XCH A,directAdirectXCH A,RiA03(Ri)033.2.1数据传送指令类型助记符格式执

9、行的操作指令说明类型助记符格式执行的操作指令说明加法ADD A,RnAA+Rn不带进位加法指令ADD A,RnAA+(Ri)ADD A,#dataAA+dataADD A,directAA+directADDC A,RnAA+Rn+CY带进位加法指令ADDC A,RiAA+Ri+CYADDC A,#dataAA+data+CYADDC A,directAA+direct+CY减法SUBB A,RnAA-Rn-CY带借位减法指令SUBB A,RiAA-(Ri)-CYSUBB A,#dataAA-data-CYSUBB A,directAA-direct-CY加1INC AAA+1加1指令INC

10、RnRnRn+1INC Ri(Ri)(Ri)+1INC DPTRDPTRDPTR+1INC directdirectdirect+13.2.2算术运算指令3.2.2算术运算指令类型助记符格式执行的操作指令说明减1DEC AAA-1减1指令DEC RnRnRn-1DEC Ri(Ri)(Ri)-1DEC directDPTRDPTR-1乘法MUL ABBAAB高位存B,低位存A乘法指令除法DIV ABAA/B(商),B余数除法指令调整DA A若AC=1或A309,则A(A)+06H;若CY=1或A749,则A(A)+60H 十进制加法调整指令3.2.3逻辑操作及移位指令 类型助记符格式执行的操作指

11、令说明与ANL A,RnAARn字节逻辑与指令,通常用于将一字节中的指定位清零,其余位不变ANL A,RiAA(Ri)ANL A,#dataAAdataANL A,directAAdirectANL direct,AdirectdirectAANL direct,#datadirectdirectdataANL C,bitCCbit位逻辑与指令ANL C,/bitCC/bit3.2.3逻辑操作及移位指令 类型助记符格式执行的操作指令说明或ORL A,RnAARn字节逻辑或指令,通常用于将一字节中的指定位置1,其余位不变ORL A,RiAA(Ri)ORL A,#dataAAdataORL A,d

12、irectAAdirectORL direct,AdirectdirectAORL direct,#datadirectdirectdataORL C,bitCCbit位逻辑或指令ORL C,/bitCC/bit3.2.3逻辑操作及移位指令 类型助记符格式执行的操作指令说明异或XRL A,RnAA Rn逻辑异或指令,通常用于使一字节中的指定位不变而其余位取反XRL A,RiAA (Ri)XRL A,#dataAA dataXRL A,directAA directXRL direct,Adirectdirect AXRL direct,#datadirectdirect data求反CPL A

13、A/A累加器取反指令CPL CC/C位取反指令CPL bitbit/bit置位SETB CC1位置1指令SETB bitbit13.2.3逻辑操作及移位指令 类型助记符格式执行的操作指令说明清零CLR AA0累加器清零指令CLR CC0位清零指令CLR bitbit0循环移位RL AA左移一位循环左移指令RLC AA带进位左移一位带进位循环左移指令RR AA右移一位循环右移指令RRC AA带进位右移一位带进位循环右移指令3.2.4控制转移指令类型助记符格式执行的操作指令说明无条件转移AJMP addr11PC11150绝对转移指令,2KB内绝对寻址SJMP relPCPC+rel相对转移指令-

14、80H7FH短转移LJMP addr16PCaddr16长转移指令,64KB内绝对寻址JMP A+DPTRPCA+DPTR间接寻址转移,64KB内相对寻址子程序调用及返回ACALL addr11PCPC+2,(SP)(SP)+1,(SP)PC07(SP)(SP)+1,(SP)PC815,PCaddr11绝对调用指令,调用范围同AJMPLCALL addr16PCPC+3,(SP)SP+1,(SP)PC07(SP)(SP)+1,(SP)PC815,PCaddr16长调用指令,调用范围同LJMPRETPC815(SP),SPSP-1PC07(SP),SPSP-1子程序返回指令RETIPC815(S

15、P),SPSP-1PC07(SP),SPSP-1中断返回指令3.2.4控制转移指令类型助记符格式执行的操作指令说明条件转移JZ rel若A=0,则PCPC+rel,否则顺序进行累加器A判断转移指令JNZ rel若A0,则PCPC+rel,否则顺序进行CJNE A,#data,rel若Adata,则PCPC+rel,否则顺序进行;若Adata,则CY=1,否则CY=0比较条件转移指令CJNE A,direct,rel若A(direct),则PCPC+rel,否则顺序进行;若Adata,则CY=1,否则CY=0CJNE Rn,#data,rel若Rndata,则PCPC+rel,否则顺序进行;若R

16、ndirect,则CY=1,否则CY=0CJNE Ri,#data,rel若Ridata,则PCPC+rel,否则顺序进行;若Ridata,则CY=1,否则CY=0DJNZ direct,rel(direct)(direct)-1,若(direct)0,则PCPC+rel,否则顺序进行减少1非零转移指令DJNZ Rn,relRnRn-1,若Rn0,则PCPC+rel,否则顺序进行JC rel若CY=1,则PCPC+rel,否则顺序执行以CY内容为条件的转移指令JNC rel若CY1,则PCPC+rel,否则顺序执行JB bit,rel若bit=1,则PCPC+rel,否则顺序执行以位地址内容为

17、条件的转移指令JNB bit,rel若bit1,则PCPC+rel,否则顺序执行JBC bit,rel若bit=1,则PCPC+rel,bit0,否则顺序执行3.2.4控制转移指令类型助记符格式执行的操作指令说明空操作NOPPC(PC)+1空操作指令,消耗一个机器周期3.3汇编语言的伪指令 MCS-51常用伪指令伪指令格式功能描述ORGORG 16位地址此语句后的源程序或数据块被存放的ROM起始地址DB标号: DB 把项或项表中的字节(8位)数值依次存入标号开始的存储单元中DW标号: DW 把项或项表中的字(16位)数值依次存入标号开始的存储单元中 MCS-51常用伪指令伪指令格式功能描述EQU标识符 EQU 数或汇编符号将数或汇编符号赋给左边的标识符DATA标识符 DATA 内部数据地址将内部数据地址赋给左边的标识符BIT标识符 BIT 位地址将位地址赋给左边的标识符ENDEND汇编程序源程序段结束DS标号: DS 表达式预留表达式所表示数量的内存单元3.4 STARTUP.A

温馨提示

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

评论

0/150

提交评论