欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第三章MCS-51指令系统及汇编语言程序设计.ppt

    • 资源ID:18240748       资源大小:632.50KB        全文页数:115页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第三章MCS-51指令系统及汇编语言程序设计.ppt

    3.1 MCS-51指令系统简介指令系统简介3.2 MCS-51指令系统的寻址方式指令系统的寻址方式3.3 MCS-51指令系统及一般说明指令系统及一般说明3.4 汇编语言程序设计汇编语言程序设计 教学目的和要求教学目的和要求 本章主要介绍本章主要介绍MCS-51MCS-51系列单片机的寻址系列单片机的寻址方式指令系统及汇编语言程序设计。寻址方方式指令系统及汇编语言程序设计。寻址方式和指令系统是学习和使用单片机的基础和式和指令系统是学习和使用单片机的基础和工具,是必须掌握的重要内容。工具,是必须掌握的重要内容。51指指令令系系统统简简介介v MCS-51 MCS-51指令系统简介指令系统简介 MCS-51MCS-51的基本指令共的基本指令共111111条,其中单字节指令条,其中单字节指令4949条双字节指条双字节指令令4545条,三字节指令条,三字节指令1717条。条。 从指令的执行时间来看,单机器周期从指令的执行时间来看,单机器周期(12(12个时钟振荡周期个时钟振荡周期) )指指令令6464条,双机器周期条,双机器周期(24(24个时钟振荡周期个时钟振荡周期) )指令指令4545条,只有乘、除条,只有乘、除两条指令的执行时间为两条指令的执行时间为4 4个机器周期个机器周期(48(48个时钟振荡周期个时钟振荡周期) )。 MCS-51MCS-51的指令系统按指令功能划分可分为五大类:的指令系统按指令功能划分可分为五大类: 数据传送类数据传送类 算术运算类算术运算类 逻辑运算类逻辑运算类 控制转移类控制转移类 位操作类位操作类指指令令系系统统的的寻寻址址方方式式v MCS-51MCS-51指令系统的寻址方式指令系统的寻址方式 所谓寻址方式是指所谓寻址方式是指CPUCPU用何种方式寻找参与运算的操作数或操用何种方式寻找参与运算的操作数或操作数地址的方法。作数地址的方法。MCS-51MCS-51采用了采用了7 7种寻址方式种寻址方式 寄存器寻址寄存器寻址 直接寻址直接寻址 寄存器间接寻址寄存器间接寻址 立即寻址立即寻址 基址寄存器加变址寄存器间址寻址基址寄存器加变址寄存器间址寻址 相对寻址相对寻址 位寻址位寻址 指指令令系系统统的的寻寻址址方方式式指指令令系系统统的的寻寻址址方方式式 寄存器寻址寄存器寻址 寄存器寻址方式可用于访问选定寄存器区的寄存器寻址方式可用于访问选定寄存器区的8 8个工作寄存器个工作寄存器R0R0R7R7。由指令操作码的低。由指令操作码的低3 3位指示所用的寄存器,寄存器位指示所用的寄存器,寄存器A A、B B、DPTRDPTR和和C C位位( (位处理机的累加器位处理机的累加器) )也可作为寻址的对象。也可作为寻址的对象。 在这种寻址方式中,被寻址寄存器中的内容就是操作数。在这种寻址方式中,被寻址寄存器中的内容就是操作数。例如例如 MOV AMOV A,Rn(nRn(n07) ) 表示把寄存器表示把寄存器RnRn的内容传送给累加器的内容传送给累加器A A,其中源操作数就是,其中源操作数就是RnRn的内容。的内容。 指指令令系系统统的的寻寻址址方方式式例如例如 MOV AMOV A,R7 R7 ;机器码为;机器码为EFH EFH 该指令功能是把寄存器该指令功能是把寄存器R7R7的内容送给累加器的内容送给累加器A A。 指指令令系系统统的的寻寻址址方方式式 直接寻址直接寻址 直接寻址是访问特殊功能寄存器的唯一方法。它也用于访问直接寻址是访问特殊功能寄存器的唯一方法。它也用于访问内部内部RAM(RAM(低低128128个字节个字节) )。 采用直接寻址方式的指令是双字节指令,其中第一个字节是采用直接寻址方式的指令是双字节指令,其中第一个字节是操作码,第二个字节是内部操作码,第二个字节是内部RAMRAM或特殊功能寄存器的直接地址。或特殊功能寄存器的直接地址。例如例如 MOV AMOV A,3FH3FH 表示把内部表示把内部RAM 3FHRAM 3FH单元的内容传送给单元的内容传送给A A 指指令令系系统统的的寻寻址址方方式式 寄存器间接寻址寄存器间接寻址 寄存器间接寻址方式可用于访问内部寄存器间接寻址方式可用于访问内部RAMRAM或外部数据存储器。或外部数据存储器。 这种寻址方式是由指令指定某一寄存器的内容作为操作数的这种寻址方式是由指令指定某一寄存器的内容作为操作数的地址。地址。例如例如 MOV AMOV A,RiRi ;(;(i i0 0或或1 1),),其中其中( (Ri)=40HRi)=40H 这条指令表示从这条指令表示从RiRi中找到源操作数所在单元的地址中找到源操作数所在单元的地址,把该地把该地址中的内容传送给址中的内容传送给A A。即把内部。即把内部RAMRAM中中40H40H单元的内容送到累加器单元的内容送到累加器A A中。中。指指令令系系统统的的寻寻址址方方式式 访问外部数据存储器,还可用数据指针访问外部数据存储器,还可用数据指针DPTRDPTR作为间址寄存作为间址寄存器,器,DPTRDPTR是是1616位寄存器,故它可对整个外部数据存储器空间位寄存器,故它可对整个外部数据存储器空间(64K)(64K)寻址。寻址。例如例如 MOVX AMOVX A,DPTRDPTR 把数据指针把数据指针DPTRDPTR所指的某一外部存储单元的内容送给累加所指的某一外部存储单元的内容送给累加器器A A。立即寻址立即寻址 采用立即寻址方式的指令是双字节的。第一个字节是操作码,采用立即寻址方式的指令是双字节的。第一个字节是操作码,第二字节就是操作数。因此,操作数就是存放在程序存储器内的第二字节就是操作数。因此,操作数就是存放在程序存储器内的常数。常数。指指令令系系统统的的寻寻址址方方式式例如例如 MOV AMOV A,#5AH#5AH 表示把立即数表示把立即数5AH(5AH(应冠以前缀应冠以前缀# #号,以便与地址相区别号,以便与地址相区别) )送给累加器送给累加器A A。5AH5AH这个常数是指令代码的一部分。这个常数是指令代码的一部分。 指指令令系系统统的的寻寻址址方方式式基址寄存器加变址寄存器间址寻址基址寄存器加变址寄存器间址寻址 这种寻址方式用于访问程序存储器的一个单元,该单元的地这种寻址方式用于访问程序存储器的一个单元,该单元的地址是基址寄存器址是基址寄存器(DPTR(DPTR或或PC)PC)的内容与变址寄存器的内容与变址寄存器A A的内容之和。的内容之和。例如例如 MOVC AMOVC A,A+DPTRA+DPTR 其中其中A A的原有内容为的原有内容为05H05H,DPTRDPTR的内容为的内容为4000H4000H,该指令执行,该指令执行的结果是把程序存储器的结果是把程序存储器4005H4005H单元的内容传送给累加器单元的内容传送给累加器A A。 指指令令系系统统的的寻寻址址方方式式 相对寻址相对寻址 相对寻址用于访问程序存储器,出现在相对转移指令中。相对寻址用于访问程序存储器,出现在相对转移指令中。 相对寻址是将程序计数器相对寻址是将程序计数器PCPC中的当前值与指令第二字节所中的当前值与指令第二字节所给出的数据(该数据也称为偏移量)相加,其和为跳转指令的给出的数据(该数据也称为偏移量)相加,其和为跳转指令的转移地址。转移地址也称为转移目的地址。偏移量是一有符号转移地址。转移地址也称为转移目的地址。偏移量是一有符号数,其取值范围为数,其取值范围为-128-128+127+127。例如例如 SJMP 20HSJMP 20H 指令代码为指令代码为80H80H、20H20H两个字节。假设当前的值为指令所在两个字节。假设当前的值为指令所在地址地址 2100+2 2100+2 即即PC=2102HPC=2102H,则程序将转移到,则程序将转移到2122H2122H地址去执行。地址去执行。指指令令系系统统的的寻寻址址方方式式 位寻址位寻址 位寻址是指对片内位寻址是指对片内RAMRAM的位寻址区(的位寻址区(2020H H2FH2FH)和可以位寻)和可以位寻址的专用寄存器进行位操作时的寻址方式。址的专用寄存器进行位操作时的寻址方式。 这种寻址方式在进行位操作时,借助于进位这种寻址方式在进行位操作时,借助于进位C C作为操作的位作为操作的位累加器,操作数直接给出该位的地址,然后根据操作码的性质累加器,操作数直接给出该位的地址,然后根据操作码的性质对其进行位操作。对其进行位操作。例如例如 MOV CMOV C,24H.024H.0 该指令是把该指令是把24H24H字节中的第字节中的第0 0位传送给位传送给C C。 指指令令系系统统及及一一般般说说明明vMCS-51MCS-51指令系统及一般说明指令系统及一般说明在介绍指令之前,先对指令中使用的一些符号意义进行简单在介绍指令之前,先对指令中使用的一些符号意义进行简单的说明。的说明。 direct- direct-直接地址,即直接地址,即8 8位的内部数据存储器单元或特位的内部数据存储器单元或特殊功能寄存器的地址。殊功能寄存器的地址。 #data- #data-包含在指令中的包含在指令中的8 8位常数。位常数。 #datal6- #datal6-包含在指令中的包含在指令中的1616位常数。位常数。 rel-8 rel-8位的带符号的偏移量。用于位的带符号的偏移量。用于SJMPSJMP及所有的条件转移及所有的条件转移指令中。偏移量按相对于下一条指令的第一个字节地址与跳转指令中。偏移量按相对于下一条指令的第一个字节地址与跳转后指令第一个字节地址之差计算,在后指令第一个字节地址之差计算,在128128+127+127范围内取值。范围内取值。 DPTR- DPTR-数据指针,可用作数据指针,可用作1616位的地址寄存器。位的地址寄存器。指指令令系系统统及及一一般般说说明明 bit-bit-内部内部RAMRAM或特殊功能寄存器中的直接寻址位。或特殊功能寄存器中的直接寻址位。 Cy- Cy-进位标志或进位位,或位处理机中的累加器。进位标志或进位位,或位处理机中的累加器。 - -间址寄存器或基址寄存器的前缀。如间址寄存器或基址寄存器的前缀。如 RiRi,AA十十DPTRDPTR (X)-X (X)-X中的内容中的内容 (X)- (X)-由由X X寻址的单元中的内容寻址的单元中的内容 addr11 addr11 低低1111位目标地址。位目标地址。 addr16 16addr16 16位目标地址。位目标地址。 $ $ 当前指令地址。当前指令地址。111112121313指指令令系系统统及及一一般般说说明明 数据传送类指令数据传送类指令 数据传送类指令是把源操作数传送到目的操作数。数据传送类指令是把源操作数传送到目的操作数。 数据传送类指令不影响标志,这里所说的标志是指数据传送类指令不影响标志,这里所说的标志是指CyCy、AcAc和和OVOV,但不包括检验累加器奇偶性的标志位,但不包括检验累加器奇偶性的标志位P P。1.1.内部数据传送指令内部数据传送指令指令格式指令格式 MOV MOV , , 指令的源操作数和目的操作数都在单片机内部。他们既可指令的源操作数和目的操作数都在单片机内部。他们既可以是片内以是片内RAMRAM地址,也可以是特殊功能寄存器地址,也可以是特殊功能寄存器SFRSFR的地址。当然的地址。当然源操作数也可以是立即数。源操作数也可以是立即数。(1)(1)以累加器为目的操作数的指令以累加器为目的操作数的指令 这组指令的功能是把源操作数的内容送入累加器这组指令的功能是把源操作数的内容送入累加器A A,源操作,源操作数有寄存器寻址,直接寻址,间接寻址和立即寻址等方式。数有寄存器寻址,直接寻址,间接寻址和立即寻址等方式。指指令令系系统统及及一一般般说说明明MOV A, Rn MOV A, Rn ;(;(A A) (Rn (Rn) 其中其中n=0n=07MOV AMOV A,Ri Ri ;(;(A A) (Rn) (Rn) 其中其中i=0i=0,1 1MOV AMOV A,direct direct ;(;(A A) (direct)(direct)其中其中directdirect为内部为内部RAMRAM 或或SFRSFR的地址的地址MOV AMOV A,#data #data ; (A) #data (A) #data 其中其中datadata为为8 8位的立即数位的立即数例例3-13-1:以累加器为目的操作数的指令举例。:以累加器为目的操作数的指令举例。 MOV A, R4 MOV A, R4 ;寄存器寻址;寄存器寻址: : 寄存器寄存器R4R4的内容送累加器的内容送累加器A A中。中。 MOV A, 20H MOV A, 20H ;直接寻址;直接寻址: : 内部内部RAM 20HRAM 20H单元的内容送累加单元的内容送累加 器器A A中。中。 MOV AMOV A,R0 R0 ;间接寻址;间接寻址: : R0 R0内容所指定的内部内容所指定的内部RAMRAM单元的单元的 内容送累加器内容送累加器A A中。中。 MOV AMOV A,#20H #20H ;立即寻址;立即寻址: : 立即数立即数2020H H送累加器送累加器A A中。中。 指指令令系系统统及及一一般般说说明明(2) (2) 以以RnRn为目的操作数的指令为目的操作数的指令 MOV RnMOV Rn,A A ;(Rn) (A(Rn) (A) 其中其中n=0n=07 7MOV RnMOV Rn,direct direct ;(Rn) (direct(Rn) (direct) MOV RnMOV Rn,#data #data ;(Rn) date (Rn) date 这组指令的功能是把源操作数的内容送入当前工作寄存器这组指令的功能是把源操作数的内容送入当前工作寄存器区的区的R0R0R7R7中的某中的某个寄存器中。个寄存器中。例例3-23-2:以:以RnRn为目的操作数的指令应用举例。为目的操作数的指令应用举例。MOV R3MOV R3,A A ;累加器;累加器A A中的内容送寄存器中的内容送寄存器R3R3中。中。MOV R6MOV R6,32H 32H ;内部;内部RAM 32HRAM 32H单元的内容送寄存器单元的内容送寄存器R6R6中。中。MOV R1MOV R1,#0FFH #0FFH ;立即数;立即数0FFH0FFH送寄存器送寄存器R1R1中。中。指指令令系系统统及及一一般般说说明明(3) 3) 以直接地址为目的操作数的指令以直接地址为目的操作数的指令MOV directMOV direct, A A ;(direct(direct) (A)(A)MOV direct, Rn MOV direct, Rn ;(direct(direct) (Rn (Rn) 其中其中n=0n=07 7MOV direct1MOV direct1,direct2 direct2 ;(direct1(direct1) (direct2 (direct2)MOV directMOV direct, Ri Ri ;(direct(direct) (Ri) (Ri) 其中其中i=0,1i=0,1MOV directMOV direct, #data #data ;(direct(direct) datadata 这组指令的功能是把源操作数送入直接地址指定的存储单元。这组指令的功能是把源操作数送入直接地址指定的存储单元。其中其中directdirect指内部指内部RAMRAM或或SFRSFR的地址。的地址。例例3-33-3:以直接地址为目的操作数的指令应用举例。:以直接地址为目的操作数的指令应用举例。MOV 22HMOV 22H,A A ;累加器;累加器A A的内容送内部的内容送内部RAM 22HRAM 22H单元中。单元中。MOV 22HMOV 22H,50H 50H ;内部;内部50H50H单元的内容送内部单元的内容送内部22H22H单元中。单元中。MOV SPMOV SP,#65H #65H ;立即数;立即数65H65H送特殊功能寄存器送特殊功能寄存器SPSP(地址为(地址为 81H81H)中。)中。 指指令令系系统统及及一一般般说说明明(4) (4) 以寄存器间接地址为目的操作数的指令以寄存器间接地址为目的操作数的指令MOV RiMOV Ri, A A ;(Ri) (A)(Ri) (A)其中其中i=0i=0,1 1MOV RiMOV Ri,direct direct ;(Ri) (direct(Ri) (direct)MOV RiMOV Ri, #data #data ;(Ri) (Ri) data data 这组指令的功能是把源操作数内容送入这组指令的功能是把源操作数内容送入R0R0或或R1R1指定的存储指定的存储单元中。单元中。例如例如 假设寄存器假设寄存器R0R0中的内容为中的内容为28H28H,则下面的指令将完成把立,则下面的指令将完成把立即数即数0AAH0AAH送内部送内部RAM 28HRAM 28H中。中。 MOV R0MOV R0,#0AAH #0AAH ;(5) 16(5) 16位数传送指令位数传送指令MOV DPTRMOV DPTR,#datal6 #datal6 ;(;(DPTRDPTR) datadata 这条指令的功能是把这条指令的功能是把1616位常数送入位常数送入DPTRDPTR,这是整个指令系,这是整个指令系统中唯一的一条统中唯一的一条1616位数据的传送指令,用来设置地址指针。地位数据的传送指令,用来设置地址指针。地址指针址指针DPTRDPTR由由DPHDPH和和DPLDPL组成。这条指令执行的结果把高组成。这条指令执行的结果把高8 8位立即位立即数送入数送入DPHDPH,低,低8 8位立即数送入位立即数送入DPLDPL。指指令令系系统统及及一一般般说说明明2. 2. 堆栈操作指令堆栈操作指令 在在MCS-51MCS-51内部内部RAMRAM中可以设定一个后进先出中可以设定一个后进先出LIFO(Last In LIFO(Last In First Out)First Out)的区域作为堆栈区。在特殊功能寄存器中有一个堆的区域作为堆栈区。在特殊功能寄存器中有一个堆栈指针栈指针SPSP,它指出栈顶的位置,在指令系统中有两条用于数据,它指出栈顶的位置,在指令系统中有两条用于数据操作的栈操作指令。操作的栈操作指令。(1)(1)进栈指令进栈指令 PUSH direct PUSH direct ;(sp) (sp(sp) (sp)+1+1,(sp) (direct(sp) (direct) 这条指令的功能是首先将栈指针这条指令的功能是首先将栈指针SPSP加加1 1,然后把直接地址指,然后把直接地址指出的内容送到栈指针出的内容送到栈指针SPSP指示的内部指示的内部RAMRAM单元中。单元中。例例3-43-4:当:当(SP)=60H(SP)=60H,(A)=30H(A)=30H,(B)=70H(B)=70H时,执行下列指令的结时,执行下列指令的结果是什么?果是什么?PUSH A PUSH A ;(SP)+1=61H (SP)+1=61H (SPSP) (A) (61H (A) (61H)PUSH B PUSH B ;(SP)+1=62H (SP)+1=62H (SPSP) (B) (62H(B) (62H)结果:结果:(61(61H)=30H (62H)=70H (SP)=62HH)=30H (62H)=70H (SP)=62H指指令令系系统统及及一一般般说说明明(2)(2)退栈指令退栈指令POP direct POP direct ;(;(directdirect) (sp)(sp),(sp) (sp)-1(sp) (sp)-1 这条指令的功能是栈指针这条指令的功能是栈指针SPSP指示的内部指示的内部RAMRAM单元内容送入直单元内容送入直接地址指出的字节单元中,然后栈指针接地址指出的字节单元中,然后栈指针SPSP减减1 1。例例3-53-5:当:当(SP)=52H (52H)=20H (51)=30H(SP)=52H (52H)=20H (51)=30H,执行下列指令的,执行下列指令的结果是什么?结果是什么?POP DPH POP DPH ;(SP) DPH(SP) DPH,(SP)(SP)1 1 (SPSP)POP DPL POP DPL ;(SP) DPL(SP) DPL,(SP)(SP)1 1 (SPSP)结果:结果:( (DPTR)=2030H (SP)=50HDPTR)=2030H (SP)=50H3. 3. 累加器累加器A A与外部数据存储器传送指令与外部数据存储器传送指令 这组指令的功能是累加器这组指令的功能是累加器A A和外部和外部RAMRAM存储器或存储器或I IO O的数据的数据相互传送。相互传送。外部外部RAMRAM的数据传送指令与内部的数据传送指令与内部RAMRAM数据传送指令相数据传送指令相比,在指令助记符中增加了比,在指令助记符中增加了“X”X”,“X”X”是代表外部的意思。是代表外部的意思。 指指令令系系统统及及一一般般说说明明MOVX AMOVX A,DPTR DPTR ;(DPTR) (A)(DPTR) (A),读外部,读外部RAMRAMIOIOMOVX AMOVX A,Ri Ri ; (Ri) (A)(Ri) (A),读外部,读外部RAMRAMIOIOMOVX DPTR,A MOVX DPTR,A ; (A) (DPTR)(A) (DPTR),写外部,写外部RAM/IO RAM/IO MOVX RiMOVX Ri,A A ; (A) (Ri)(A) (Ri),写外部,写外部RAhM/I0RAhM/I0 当用当用 RiRi间接寻址时,若外部扩展较大的间接寻址时,若外部扩展较大的RAMRAM区域,须用区域,须用P2P2口输出高口输出高8 8位地址,用位地址,用 RiRi表示低表示低8 8位地址,位地址,P0P0口分时作低口分时作低8 8位地位地址线和数据线,址线和数据线,P2P2口应事先预置。若设计循环程序,口应事先预置。若设计循环程序, RiRi被加到被加到0 0或减到或减到0 0时必须考虑对时必须考虑对P2P2口高口高8 8位地址进位或借位的关系。位地址进位或借位的关系。4. 查表指令查表指令(1)(1)MOVC AMOVC A,AAPC PC ;(;(A A) (A(A)+ +(PC)PC) 这条指令以这条指令以PCPC作基址寄存器,作基址寄存器,A A的内容作为无符号整数和的内容作为无符号整数和PCPC的内容的内容( (下一条指令的起始地址下一条指令的起始地址) )相加后得到一个相加后得到一个1616位的地址,位的地址,由该地址指出的程序存储单元的内容送到累加器由该地址指出的程序存储单元的内容送到累加器A A。 指指令令系系统统及及一一般般说说明明例例3-63-6: (A)(A)20H20H,执行地址,执行地址2000H2000H处的指令处的指令“MOVC AMOVC A,A+PC”A+PC”后,结果如何?后,结果如何? 本指令占用一个单元,下一条指令的地址为本指令占用一个单元,下一条指令的地址为2001H2001H,(PC)(PC)2001H2001H再加上再加上A A中的中的20H20H,得,得2021H2021H,结果将程序存储器,结果将程序存储器2021H2021H中的中的内容送入内容送入A A。这条指令的缺点是表格只能存放在该条查表指令后。这条指令的缺点是表格只能存放在该条查表指令后面的面的256256个单元之内,表格的大小受到限制。个单元之内,表格的大小受到限制。(2)(2)MOVC AMOVC A,AADPTR DPTR ;(;(A A) (A(A)+ +(DPTR) DPTR) 这条指令以这条指令以DPTRDPTR作为基址寄存器,作为基址寄存器,A A的内容作为无符号数和的内容作为无符号数和DPTRDPTR的内容相加得到一个的内容相加得到一个1616位的地址,由该地址指出的程序存位的地址,由该地址指出的程序存储器的单元内容送到累加器储器的单元内容送到累加器A A。例例3-73-7:假设:假设(DPTR)=8000H(DPTR)=8000H,(A)=20H(A)=20H,则执行指令,则执行指令“MOVC AMOVC A,A+DPTR”A+DPTR”后,累加器后,累加器A A中的内容是什么?中的内容是什么? 该指令首先将累加器该指令首先将累加器A A的内容和特殊功能寄存器的内容和特殊功能寄存器DPTRDPTR的内容的内容相加,把相加后的结果作为地址,然后将该地址单元中的内容相加,把相加后的结果作为地址,然后将该地址单元中的内容送累加器送累加器A A中,即将程序存储器中中,即将程序存储器中8020H8020H单元内容送入累加器单元内容送入累加器A A。表格的大小和位置可以在表格的大小和位置可以在64K64K程序存储器中任意安排。程序存储器中任意安排。 指指令令系系统统及及一一般般说说明明5. 5. 字节交换指令字节交换指令XCH A,Rn XCH A,Rn ;(;(A A) (RnRn) XCH AXCH A,direct direct ;(;(A A) (directdirect)XCH AXCH A,Ri Ri ;(;(A A) (Ri) (Ri) 这组指令的功能是将累加器这组指令的功能是将累加器A A的内容和源操作数的内容相互的内容和源操作数的内容相互交换。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等交换。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等方式。方式。 例例3-83-8:若已知:若已知(A)(A)80H 80H ,(R7)=08H (R7)=08H ,(40H)=0F0H(40H)=0F0H, (R0)(R0)30H 30H ,(30H)=0FH(30H)=0FH,执行下面的指令指令后,累加器,执行下面的指令指令后,累加器A A、寄存器、寄存器R7R7、内部、内部RAM 40HRAM 40H和和30H30H单元的内容分别是多少单元的内容分别是多少? ? XCH A,R7 XCH A,R7 ;(A) (R7)(A) (R7)XCH A,40H XCH A,40H ;(A) (40H)(A) (40H)XCH AXCH A,R0 R0 ;(A) (R0)(A) (R0)结果:结果:( (A)A)0FH0FH,(R7)(R7)80H80H,(40H)=08H(40H)=08H,(30H)(30H)F0HF0H指指令令系系统统及及一一般般说说明明6. 6. 半字节交换指令半字节交换指令XCHD AXCHD A,Ri Ri ;(;(A A)03 (Ri) (Ri)03 累加器的低累加器的低4 4位与内部位与内部RAMRAM所指单元的低所指单元的低4 4位交换。位交换。 例例3-9:已知已知(R0)(R0)60H60H,(60H)(60H)3EH3EH,(A)(A)59H59H,执行完,执行完“XCHD AXCHD A,R0”R0”指令后的结果如何?指令后的结果如何? 执行完半字节交换指令后,执行完半字节交换指令后,( (A)A)5EH5EH,(60H)(60H)39H39H。 指指令令系系统统及及一一般般说说明明算术操作类指令算术操作类指令 在在MCS-5lMCS-5l指令系统中,有单字节的加、减、乘、除法指令,指令系统中,有单字节的加、减、乘、除法指令,数据运算功能比较强。算术操作指令执行的结果将使进位标志数据运算功能比较强。算术操作指令执行的结果将使进位标志(Cy)(Cy)、辅助进位、辅助进位(Ac)(Ac)、溢出标志、溢出标志(OV)(OV)及奇偶标志(及奇偶标志(P P)置位或复)置位或复位,但是加位,但是加1 1和减和减1 1指令不影响这些标志。指令不影响这些标志。1 1加法指令加法指令ADD A, ADD A, Rn Rn ;(;(A A) (A) + (A) +(RnRn)ADD A, direct ADD A, direct ;(;(A A) (A) + (A) +(directdirect)ADD AADD A,Ri Ri ;(;(A A) (A) +(Ri)(A) +(Ri)ADD AADD A,data data ;(;(A A) (A) + data (A) + data 这组加法指令的功能是把所指出的字节变量与累加器这组加法指令的功能是把所指出的字节变量与累加器A A的内的内容相加,其结果放在累加器容相加,其结果放在累加器A A中。中。指指令令系系统统及及一一般般说说明明例例3-103-10:已知:已知 (A)(A)53H53H,(R0)(R0)0FCH0FCH,求两数之和,并说明,求两数之和,并说明PSWPSW的有关标志位的内容。的有关标志位的内容。 ADD AADD A,R0R0结果为:结果为: 0 1 0 1 0 0 1 10 1 0 1 0 0 1 1 +)1 1 1 1 1 1 0 0 +)1 1 1 1 1 1 0 0 和为和为: 1 0 1 0 0 1 1 1 1: 1 0 1 0 0 1 1 1 1(A)(A)4FH4FH,(Cy)(Cy)l l,(Ac)(Ac)0 0,(OV)(OV)0 0,(P)(P)l l(A A中结果中结果1 1的的位数为奇数个)。位数为奇数个)。例例3-113-11:若:若( (A)A)85H85H,(R0)(R0)20H20H,(20H)(20H)0AFH0AFH,执行加法指,执行加法指令后,各标志位的状态。令后,各标志位的状态。 ADD AADD A,R0 R0 ;累加器的内容和内部;累加器的内容和内部RAM 20HRAM 20H的内容相加。的内容相加。结果为:结果为: 1 0 0 0 0 1 0 11 0 0 0 0 1 0 1 + +)1 0 1 0 1 1 1 11 0 1 0 1 1 1 1 和为和为: 1 0 0 1 1 0 1 0 01 0 0 1 1 0 1 0 0( (A)=34HA)=34H,(Cy)=1(Cy)=1,(Ac)=l(Ac)=l,(OV)=l(OV)=l,(P)(P)1 1指指令令系系统统及及一一般般说说明明2带进位加法指令带进位加法指令 ADDC A, ADDC A, Rn Rn ; (A) (A)+(Rn)+(Cy)(A) (A)+(Rn)+(Cy) ADDC A, direct ADDC A, direct ; (A) (A)+(direct)+(Cy) (A) (A)+(direct)+(Cy) ADDC A ADDC A,Ri Ri ; (A) (A)+(Ri)+(Cy)(A) (A)+(Ri)+(Cy) ADDC A ADDC A,#data #data ; (A) (A)+data+(Cy) (A) (A)+data+(Cy) 这组带进位加法指令的功能是同时把所指出的字节变量、这组带进位加法指令的功能是同时把所指出的字节变量、进位标志与累加器进位标志与累加器A A内容相加,结果放在累加器内容相加,结果放在累加器A A中。中。 如果位如果位7 7有进位输出则置有进位输出则置“1 1”进位标志进位标志CyCy,否则清,否则清“0 0”CyCy;如果位如果位3 3有进位输出,则置位辅助进位标志有进位输出,则置位辅助进位标志AcAc,否则清,否则清“0 0”AcAc;如果位如果位6 6有进位输出,而位有进位输出,而位7 7没有或者位没有或者位7 7有进位输出而位有进位输出而位6 6没有,没有,则置位溢出标志则置位溢出标志OVOV,否则清,否则清00OVOV。寻址方式和。寻址方式和ADDADD指令相同。指令相同。指指令令系系统统及及一一般般说说明明例例3-123-12:设:设(A)=85H(A)=85H,(20H)=0FFH(20H)=0FFH,Cy=1Cy=1,求两数之和及,求两数之和及PSWPSW相相关位的内容。关位的内容。ADDC A, 20HADDC A, 20H结果为:结果为: 1 0 0 0 0 1 0 11 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +) 1 +) 1 和为:和为:1 1 0 0 0 0 1 0 11 1 0 0 0 0 1 0 1( (A)=85H,(Cy)=1A)=85H,(Cy)=1,(Ac)=l(Ac)=l,(OV)=0(OV)=0,(P)(P)1 13 3 带进位减法指令带进位减法指令 SUBB A, SUBB A, Rn Rn ;(;(A A) (A A)- -(RnRn)- -(CyCy) SUBB A, direct SUBB A, direct ;(;(A A) (A A)- -(directdirect)- -(CyCy) SUBB A, Ri SUBB A, Ri ;(;(A A) (A A)- -(RiRi)- -(CyCy) SUBB ASUBB A,#data #data ;(;(A A) (A A)- data - data -(CyCy) 指指令令系系统统及及一一般般说说明明 这组带进位减法指令是从累加器这组带进位减法指令是从累加器A A中减去指定的变量和进位标志,中减去指定的变量和进位标志,结果存在累加器中。结果存在累加器中。 如果位如果位7 7需借位则置位需借位则置位CyCy,否则清,否则清“0”Cy0”Cy;如果位;如果位3 3需借位则置位需借位则置位AcAc,否则清,否则清“0”Ac0”Ac;如果位;如果位6 6需借位而位需借位而位7 7不需要借位,或者位不需要借位,或者位7 7需借位,需借位,位位6 6不需借位,则置位溢出标志位不需借位,则置位溢出标志位OVOV,否则清,否则清“0”OV0”OV。源操作数允许有。源操作数允许有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址方式。寄存器寻址、直接寻址、寄存器间接寻址和立即寻址方式。例例3-133-13:设:设( (A)A)0A9H (R2)=98H0A9H (R2)=98H,(,(CyCy)1 1,求计算两数之差,并,求计算两数之差,并说明执行减法指令后各标志位的状态。说明执行减法指令后各标志位的状态。SUBB ASUBB A,R2R2结果为结果为 1 0 1 0 1 0 0 11 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 - -) 1 1 差为差为 0 0 0 1 0 0 0 00 0 0 1 0 0 0 0( (A)A)10H10H,(,(CyCy)=0=0,(,(AcAc)=0=0,(,(OVOV)0 0,(,(P P)=1=1。 指指令令系系统统及及一一般般说说明明 4. 4. 加加1 1、减、减1 1指令指令 增量指令增量指令 INC A INC A ; (A A) (A A)+1+1 INC Rn INC Rn ; (RnRn) (RnRn)+1+1 1NC direct 1NC direct ;(;(directdirect) (directdirect)+1+1 1NC Ri 1NC Ri ; (Ri) (Ri) (Ri)+1Ri)+1 1NC DPTR 1NC DPTR ; (DPTRDPTR) (DPTRDPTR)+1 +1 这组增量指令的功能把所指出的变量加这组增量指令的功能把所指出的变量加1 1,若原来为,若原来为0 0FFHFFH,将溢出为将溢出为0000H(H(指前指前4 4条指令条指令) ),不影响任何标志(,不影响任何标志(INC A INC A 指令除指令除外,它影响奇偶标志)。第外,它影响奇偶标志)。第5 5条指令条指令INC DPTRINC DPTR,这是,这是1616位数加位数加1 1指令指令。指指令令系系统统及及一一般般说说明明减减1 1指令指令 DEC A DEC A ; (A A) (A A)-1-1 DEC Rn DEC Rn ; (RnRn) (RnRn)-1-1

    注意事项

    本文(第三章MCS-51指令系统及汇编语言程序设计.ppt)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开