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

    第3章MCS-51单片机的指令系统课件.ppt

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

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

    第3章MCS-51单片机的指令系统课件.ppt

    第3章 MSC-51单片机的指令系统1总体要求:总体要求: 熟练掌握MCS-51单片机汇编语言的指令格式 熟练掌握MCS-51单片机指令的寻址方式 了解机器语言指令格式 掌握MCS-51指令系统的分类、符号约定和常用指令 能够独立完成本章作业学习重点:学习重点: MCS-51单片机的指令格式和寻址方式 MCS-51指令系统中各条指令的助记符格式、 功能等特性第第3 3章章 MCS-51MCS-51单片机的指令系统单片机的指令系统 第3章 MSC-51单片机的指令系统3.1 3.1 指令格式和寻址方式指令格式和寻址方式3.2 3.2 指令系统指令系统2 第3章 MSC-51单片机的指令系统33.1 3.1 指令格式和寻址方式指令格式和寻址方式3.1.1 3.1.1 指令格式指令格式 MCS-51单片机的指令和一般的微型计算机一样,具有两级形式:汇编语言级和机器语言级。对用户而言,主要使用汇编语言来编写程序,然后由汇编程序(机器汇编)或手工汇编将汇编语言源程序翻译成二进制代码组成的机器语言程序。汇编语言的特点是对每一条指令都给出了助记符。由于助记符具有用英文单词的缩写来描述指令的特征,因此它不但便于记忆,也便于理解和分类。 第3章 MSC-51单片机的指令系统4 1. 汇编语言指令格式 MCS-51单片机汇编语言指令格式为: 标号: 操作码 操作数 ;注释 各字段之间用规定的符号隔开。方括号的部分为可选项。 例如:LOOP: MOV A,54H ;A54H 各字段的意义如下: 标号:标号:标号给出了该指令位置的符号地址,即该指令机器代码存储单元的地址。它是以英文字母开始的由18个字母或数字组成的字符串,并以“:”结束。 操作码:操作码:操作码部分给出了指令所实现的操作功能。操作码用助记符的形式给出。 第3章 MSC-51单片机的指令系统5 操作数:操作数:操作数部分给出了指令中参与操作的对象。操作数一般分为目的操作数(上例中累加器A)和源操作数(上例中的54H),两者之间用“,”分隔。任何指令的操作都是实现“从源操作数到目的操作数”,因此,目的操作数和源操作数的书写顺序不能颠倒。需要指出的是:也有些指令根据其功能只指明了一个操作数或不需要指明操作数。 注释:注释:注释部分是用户为方便阅读而加的注释。注释以“;”为开始。注释部分对汇编语言来讲可有可无,它不参与计算机的操作,不影响指令的执行。 例如: MOV A,00H ;将累加器清0 第3章 MSC-51单片机的指令系统6 . 机器语言指令格式 机器语言指令是一种二进制码,包括操作码和操作数。操作码规定了该指令操作的性质,操作数则表明了操作的对象。MCS-51的指令系统有单字节、双字节和三字节这三种形式的指令,分别占有13个存储单元。 (1) 单字节指令:如 RETI对应的机器语言指令格式为: (2) 双字节指令: 如 MOV A,54H对应的机器语言指令格式为: 00110010B (32H) 操作码 01110100B (74H)操作码01010100B (54H)操作数 第3章 MSC-51单片机的指令系统7 (3) 三字节指令:如MOV 30H,54H对应的机器语言指令格式为:01110101 B (75H)操作码00110000 B (30H)目的操作数01010100B (54H)源操作数 单字节指令的操作码本身就隐含了操作数的信息;一般情况下,双字节指令的首字节为操作码,第二字节为操作数或操作数的地址;三字节指令的首字节为操作码,后面两个字节为操作数或操作数的地址。指令字节越多,所占内存单元越多,但执行时间的长短只取决于执行该指令需要多少个机器周期。 第3章 MSC-51单片机的指令系统83.1.2 3.1.2 寻址方式寻址方式 在指令系统中,操作数是一个重要的组成部分,它指定了参加运算的数或数所在的地址单元。如何找到操作数地址的方式就称为寻址方式。寻址方式就是在规定的地址范围内如何灵活地、方便地找到所需要的操作数地址。 MCS-51单片机指令操作数或操作数地址主要有以下7种寻址方式。 第3章 MSC-51单片机的指令系统9 1. 立即寻址 立即寻址就是在指令中的操作数(8位或16位),这个操作数称为立即数。用符号“”表示立即数,以区别直接地址。 例如:MOV A,3AH ;A3AH 功能:把3AH这个数送入累加器A中。 例如:MOV DPTR,0123H ;DPTR0123H 功能:将数据指针DPTR传送16位的立即数,立即数的高8位送入DPH中,低8位送入DPL中。此为三字节的指令,指令代码为90H、01H、23H。立即寻址示意图如图3-1所示。 第3章 MSC-51单片机的指令系统10 (a)MOV A,#3AH (b)MOV DPTR,#0123H 图3-1 立即寻址示意图 第3章 MSC-51单片机的指令系统112. 直接寻址 直接寻址就是在指令中直接给出了操作数的地址。提供了访问内部数据存储器3种地址空间的方法:可以访问内部RAM128个字节单元、221个位地址空间以及特殊功能寄存器SFR,且SFR和位地址空间只能用直接寻址的方式来访问。 例如:MOV A,70H;A(70H) 功能:把片内RAM 70H单元的内容送入累加器A中,图3-2示。 第3章 MSC-51单片机的指令系统12图3-2 直接寻址示意图 第3章 MSC-51单片机的指令系统3. 寄存器寻址 寄存器寻址是在指令中指定某一寄存器的内容为操作数。对累加器A、通用寄存器B、数据指针寄存器DPTR和进位位CY,其寻址时具体的寄存器已隐含在其操作码中,而对选定的8个工作寄存器R0R7则用操作码的低三位指明所用的寄存器。用户可用PSW中的RS1、RS0来选择寄存器组 。 例如:MOV A,R5;AR5 功能:把R5中的内容(设R561H)送入累加器A中。该指令执行过程如图3-3所示。13 第3章 MSC-51单片机的指令系统14图3-3 寄存器寻址示意图 第3章 MSC-51单片机的指令系统15 4. 寄存器间接寻址 寄存器间接寻址是把指令中指定的寄存器的内容作为操作数的地址,把该地址单元的内容作为操作数。这种寻址方式用于访问内部RAM和外部RAM。可用来间接寻址的寄存器有R0、R1、堆栈指针SP以及16位的数据指针DPTR,使用时前面加符号表示间接寻址。 例如:MOV A,R1 ;A(R1) 其指令代码形式为11100111,十六进制为E7H,注意最低位为1,表示现在使用的寄存器为 R1。现假设工作寄存器为第0组,R1中存放的是75H。则执行该指令过程如图3-4所示。 第3章 MSC-51单片机的指令系统16图3-4 寄存器间接寻址示意图 第3章 MSC-51单片机的指令系统 5. 变址寻址变址寻址是以某个寄存器的内容为基地址,然后在这个基地址的基础上加上地址偏移量形成真正的操作数地址MCS-51单片机可由DPTR或PC作为基址寄存器,由累加器A作为偏移量寄存器。这种寻址方式常用于查表操作。 例如:MOVC A,A+DPTR ;A(A+DPTR) 功能:把DPTR中的内容和A中的内容相加作为16位的程序存储器地址,再把该地址对应单元的内容送入累加器A中。执行该指令过程如图3-5所示。17 第3章 MSC-51单片机的指令系统18图3-5 变址寻址示意图 第3章 MSC-51单片机的指令系统196. 相对寻址相对寻址用于转移指令的操作,将程序计数器PC中的当前值(相对转移指令后的字节地址)与指令第二字节给出的偏移量相加,将其结果作为转移指令的目标地址。指令第二字节给出的偏移量有正负号,在指令中以补码形式给出,转移的范围在-128+127之间。 例如;JZ 30H ;A0条件成立转移 功能:若A0,不跳转继续执行下一条指令;若A0,则以PC中的当前值为基地址,加上偏移量30H后所得到的结果为该转移指令的目的地址,从而实现程序的转移。 第3章 MSC-51单片机的指令系统 设该指令存放于0100H、0101H单元,取出指令后,PC当前值为0102H;对A进行判断,若A0,则PC内容与偏移量30H相加,得到转移目的地址0132H。故执行完该指令后,PC中的值为0132H,程序从0132H处开始执行。执行过程如图3-6所示。20 第3章 MSC-51单片机的指令系统21图3-6 相对寻址示意图 第3章 MSC-51单片机的指令系统22 在实际工作中,有时要根据已知源地址和目的地址计算偏移量rel。现以两字节相对转移指令为例讨论偏移量rel的计算。 正向跳转:rel目的地址-源地址-2地址差-2 目的地址小于源地址,rel用负数的补码表示。 反向跳转:rel(目的地址-源地址-2)补 (目的地址-(源地址+2) 第3章 MSC-51单片机的指令系统 7. 位寻址位寻址是指对片内RAM的位寻址区和某些有位地址的特殊功能寄存器进行位操作时的寻址方式。位地址与直接寻址中的字节地址形式完全一样,主要由操作码来区分。 例如:MOV C,07H 功能:把内部RAM 20H单元的D7位(位地址为07H)的内容传到位累加器C(即CY)中,其操作过程如图3-7所示。 23 第3章 MSC-51单片机的指令系统24图3-7 位寻址示意图 第3章 MSC-51单片机的指令系统253.2 3.2 指令系统指令系统 MCS-51单片机共有111条指令,按字节数分类,单字节指令49条,双字节指令45条,三字节指令17条;按执行时间分类,单机器周期指令64条,双机器周期指令45条,只有乘法和除法指令占用四个机器周期。若系统时钟为12MHz,大多数指令执行时间仅需1s;按功能分类可划分为五类: (1) 数据传送类指令28条; (2) 算术运算类指令24条; (3) 逻辑操作类指令25条; (4) 控制转移类指令17条; (5) 位操作类指令17条。 第3章 MSC-51单片机的指令系统26在汇编语言指令中,约定采用以下符号: Rn(n=17)指定当前选中的工作寄存器组中名为R0R7的工作寄存器,被选中的工作寄存器组由PSW中RS0、RS1确定。 Ri(i=0、1)指定当前选中的工作寄存器组中可作为地址指针的两个工作寄存器R0、R1。 data 代表8位立即数,包含在指令中的8位常数。 data16 代表16位立即数,即包含在指令中的16位常数。 direct 代表8位片内RAM单元的直接地址。 addr11 代表11位目的地址。用于ACALL 和AJMP指令中,目的地址必须在下一条指令第一个字节同一2K字节程序存储器地址空间内。 第3章 MSC-51单片机的指令系统27 addr16 代表16位目的地址。用于LCALL和LJMP指令中,目的地址在64K程序存储器地址空间内。 rel 指定补码形式的8位地址偏移量。用于相对转移指令中,偏移量以下一条指令第一字节地址为基址,地址偏移量范围为-128+127。 bit 代表片内RAM或SFR可直接寻址的位地址。 间接寻址方式中,表示间址寄存器的符号。 / 位操作指令中,表示先对该位求反再参与操作,但不影响该位原值。 () 表示由所指地址单元中的内容。 指令操作流程,将箭头右边的内容送到箭头左边的单元中。 $ 指本条指令的起始地址 第3章 MSC-51单片机的指令系统283.2.1 3.2.1 数据传送类指令数据传送类指令 传送类指令主要用于数据传送、保存以及交换等场合。 数据传送指令除通过累加器进行数据传送之外,还可以是数据存储器之间或工作寄存器与数据存储器之间进行数据传送。它一般是把源操数传送到目的操作数,指令执行后源操作数不变,目的操作数修改为源操作数。此类指令一般不影响标志位,只有堆栈操作可以直接修改程序状态字PSW。另外,对目的操作数为累加器A的指令将影响奇偶标志P位。 数据传送类指令用到的助记符有MOV、MOVC、MOVX、XCH、XCHD、SWAP、PUSH、POP共8种。源操作数可以采用寄存器、寄存器间接、直接、立即、变址5种寻址方式,目的操作数采用前三种寻址方式。 第3章 MSC-51单片机的指令系统291. 对内部RAM和SFR的一般数据传送指令(15条) (1) 以累加器A为目的操作数的指令(4条) 功能:把源操作数指定的内容送入累加器A中。使用寄存器寻址、直接寻址、寄存器间接寻址和立即寻址4种寻址方式。 MOV A,Rn ;ARn MOV A,direct ; A(direct) MOV A,Ri ; A(Ri) MOV A,data ; Adata 第3章 MSC-51单片机的指令系统30 (2) 以寄存器Rn为目的操作数的指令(3条) 功能:把源操作数指定的内容送到所选定的工作寄存器Rn中。使用寄存器寻址、直接寻址和立即寻址3种寻址方式。 MOV Rn ,A ; RnA MOV Rn ,direct ; Rn(direct ) MOV Rn ,data ; Rndata 第3章 MSC-51单片机的指令系统 (3) 以直接地址为目的操作数的指令(5条) 功能:把源操作数指定的内容送到由直接地址direct所指定的片内RAM中。使用寄存器、直接、寄存器间接和立即4种寻址方式。 MOV direct,A ;(direct) A MOV direct,Rn ;(direct )Rn MOV direct1,direct2 ;(direct1)(direct2) MOV direct, Ri ; (direct) (Ri) MOV direct,data ; (direct) data 第3章 MSC-51单片机的指令系统32 (4) 以间接地址为目的操作数的指令(3条) 功能:把源操作数指定的内容送到以Ri中的内容为地址的片内RAM中。使用寄存器、直接和立即3种寻址方式。 MOV Ri,A ;(Ri)A MOV Ri,direct ;(Ri)(direct) MOV Ri,# data ;(Ri)data 第3章 MSC-51单片机的指令系统33例3.1 利用直接寻址把立即数32H送到内部RAM的20H单元。 MOV 20H,32H 例3.2 利用寄存器间接寻址把立即数32H送入内部RAM的20H单元。 MOV R0,20H MOV R0,32H 例3.3 利用直接寻址把P1口的内容传送到P3口。 MOV P3,P1 例3.4 利用寄存器间接寻址把累加器A的内容传送到外部数据存储器4000H单元。 MOV DPTR,4000H MOVX DPTR,A 第3章 MSC-51单片机的指令系统342. 累加器与程序存储器的传送指令(2条) 功能:对存放于程序存储器中的表格数据进行查找传送。使用变址寻址方式。MOVC A,A+DPTR ;A(A+DPTR)MOVC A,A+PC ;A(A+PC) 3. 累加器与片外RAM传送指令(4条)功能:累加器A与片外RAM间的相互传送。片外扩展的I/O口与片外RAM是统一编址的,故以下4条指令也可以作为输入/输出指令。其使用寄存器间接寻址方式。MOVX A, DPTR ;A(DPTR) 或读I/O线MOVX DPTR,A ;(DPTR)A 或写I/O线MOVX A,Ri ; A (Ri) 或读I/O线MOVX Ri,A ;(Ri) A 或写I/O线 第3章 MSC-51单片机的指令系统354. 堆栈操作类指令(2条) 功能:把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元。 PUSH direct ; SPSP+1 (SP)(direct) POP direct ; SPSP-1 (direct)(SP) 前一条指令称为入栈指令,后一条指令称为出栈指令,51机复位后,(SP)=07H,为防止与工作寄存器组发生冲突,一般需重新设定SP的初始值。由于压入堆栈的第一个数必须存放在SP+1所指存储单元,故实际的栈底为SP+1所指存储单元。 第3章 MSC-51单片机的指令系统36 例3.5 设(10H)01H,(20H)1AH。将内部RAM 10H与20H单元的内容交换。 MOVSP,30H PUSH10H ;10H单元内容进栈 PUSH20H ;20H单元内容进栈 POP10H ;将栈顶元素弹出,送往10H单元 POP20H ;下一个元素出栈,送20H 单元 执行结果:(10H)1AH,(20H)01H 第3章 MSC-51单片机的指令系统 例3.6 根据累加器A中的数(09)查平方表的子程序。 COUNT:PUSHDPH;保护DPTR内容 PUSHDPL MOVDPTR,TABLE ;赋表首址 MOVCA,A+DPTR ;查表并传送给A POPDPL;恢复DPTR原值 POPDPH RET;返回主程序控制 TABLE:DB 00,01,04,09,16,25 DB 36,49,64,81 第3章 MSC-51单片机的指令系统38 5. 交换指令(4条) 功能:把累加器A中的内容与源操作数所指出的数据相互交换。使用寄存器、直接和寄存器间接3种寻址方式。 XCHA,Rn ;ARn XCHA,direct ;A(direct ) XCHA,Ri ;A(Ri) XCHDA,Ri ;A30(Ri)30 6. 16位数据传送类指令(1条) MOV DPTR,data16 功能:把16位常数送入数据指针寄存器。使用立即寻址方式。译成机器码时,高位字节在前,低位字节在后。 第3章 MSC-51单片机的指令系统393.2.2 3.2.2 算术运算类指令算术运算类指令算术运算类指令主要完成加、减、乘、除四则运算,以及加1、减1和BCD码的运算、调整等。除加1、减1运算外,这类指令大多数都要影响到程序状态字寄存器PSW。虽然算术逻辑单元ALU仅能对8位无符号整数进行运算,但利用进位标志CY,可进行多字节无符号整数的运算;利用溢出标志,还可方便地对带符号数进行补码运算。算术运算类指令用到的助记符有:ADD、ADDC、SUBB、INC、DEC、DA、MUL和DIV八种。 第3章 MSC-51单片机的指令系统40 1. 加法指令(4条) ADD A,data ;AA+data ADD A,direct ;AA +(direct) ADD A,Ri ;AA+(Ri) ADD A,Rn ;AA+Rn 以上指令把立即数、直接地址、间接地址以及工作寄存器的内容与累加器A中内容相加,结果送入A中。 第3章 MSC-51单片机的指令系统41 例3.7 A0C3H,R00AAH,执行ADD A,R0指令,则操作如下: 11000011 ) 10101010 101101101 运算后,CY1,OV1,AC0,P1,A6DH。 上例中若C3H和AAH看作无符号数相加,则不考虑溢出,结果为15DH;若把C3H和AAH看作有符号数,则得到2个负数相加得正数的错误结论,此时OV1,表示出错。 第3章 MSC-51单片机的指令系统42 2. 带进位加法指令(4条) ADDC A,data ;AA+data+CY ADDC A,direct ;AA+(direct)+CY ADDC A,Ri ;AA+(Ri)+CY ADDC A,Rn ;AA+Rn+CY 以上指令除了需考虑进位位外,和前面的一般加法指令完全相同。 第3章 MSC-51单片机的指令系统43 例3.8 A0AEH,R081H,CY1,执行 ADDC A,R0指令,则操作如下: 10101110 10000001 ) 1 100110000 运算后,CY=1,OV=1,AC=1,P=0,A=30H。 第3章 MSC-51单片机的指令系统44 例3.9 利用ADDC指令进行双字节加法运算。 设在双字节加法运算中,被加数存放在30H、31H单元,加数放在40H、41H单元,和存放到50H、51H单元,编程如下: MOV A,30H ;取低字节被加数 ADD A,40H ;低位字节相加 MOV 50H,A ;结果送50H单元 MOV A,31H ;取高字节被加数 ADDC A,41H ;加高字节和低位来的进位 MOV 51H,A ;结果送51H单元 第3章 MSC-51单片机的指令系统45 3. 带借位减法指令(4条) SUBB A,data ;AA-data-CY SUBB A,direct ;AA-(direct)-CY SUBB A,Ri ;AA-(Ri)-CY SUBB A, Rn ;AA-Rn-CY 以上指令把立即数、直接地址、间接地址及工作寄存器的内容和借位位CY与累加器A中内容相减,结果送回A中。 OV1表示带符号数相减时,从一个正数中减去一个负数结果为负数,或从一个负数中减去一个正数结果为正数的错误情况。 第3章 MSC-51单片机的指令系统46 例3.10 AC9H,R354H,CY1,执行指令 SUBB A,R3,则操作如下: 11001001 01010100 ) 1 01110100 运算后,CY=0,AC=0,OV=1,P=0,A=74H。 注意:在进行单字节或多字节减法的低位运算前,要保证借位标志位CY的值为0,故在进行运算前要对CY清0。 第3章 MSC-51单片机的指令系统47 例3.11 利用SUBB指令进行双字节的减法运算。 设被减数存放在30H、31H单元中,减数存放在40H、41H单元中,差存在50H、51H单元中。编程如下: MOVA,30H ;被减数低字节送A CLRC ;低字节减无借位CY清0 SUBBA,40H ;低位字节相减 MOV50H,A ;结果送50H单元 MOVA,31H ;被减数高字节送A SUBBA,41H;高字节相减 MOV51H,A ;结果送51H单元 第3章 MSC-51单片机的指令系统48 4. 乘法指令(1条) MUL AB ; BAAB 功能:将累加器A和寄存器B中的8位无符号整数相乘,所得16位乘积的低8位存放在A中,高8位存放在B中。若乘积大于FFH,则溢出标志OV为1,否则为0,乘法运算总使进位标志CY=0。 例3.12 A=4EH,B=5DH,执行 MUL AB指令,则结果如下: A=55H B=1CH OV=1 P=0 第3章 MSC-51单片机的指令系统49 例3.13 利用乘法指令编写15H33H的程序,将乘积的高8位存入31H单元,低8位存入30H单元。编程如下: MOV A,15H;被乘数送A MOV B,33H;乘数送B MUL AB;相乘 MOV 30H,A ;积的低8位送30H MOV 31H,B ;积的高8位送31H 第3章 MSC-51单片机的指令系统50 5. 除法指令(1条) DIV AB ;AAB的商,B余数 功能:把累加器A中的8位无符号整数除以寄存器B中8位无符号整数,所得商送入A中,余数送入B中。除法运算总使CY和OV清0。 若除数(B中内容)为00H,则执行结果为不定值,此时OV1,表示除法溢出。 例3.14 A=87H,B=0CH,执行DIV AB 指令,则结果如下所示: A=0BH B=03H OV=0 CY=0 第3章 MSC-51单片机的指令系统51 6. 加1指令(5条) INC A ;AA+1 INC direct ;(direct)(direct)+1 INC Ri ;(Ri)(Ri)+1 INC Rn ;RnRn+1 INC DPTR ;DPTRDPTR+1 功能:把所指定寄存器或存储单元的内容加1,结果仍送回原寄存器或存储单元,运算结果不影响任何标志位。若原来的内容为0FFH,则加1后将为00H。该组指令使用了直接、寄存器、寄存器间接寻址方式。 在第二条指令中,若直接地址是I/O口,则进行“读改写”操作。其功能是先读入端口锁存器的内容,然后在CPU中加1,继而再输出到该端口。 第3章 MSC-51单片机的指令系统52 7. 减指令(4条) DEC A ;AA-1 DEC direct ;(direct)(direct)-1 DEC Ri ;(Ri)(Ri)-1 DEC Rn ;RnRn-1 DEC指令把所指定寄存器或存储单元的内容减1,结果仍送回原寄存器或存储单元,若原来的内容为00H,则减1后将为0FFH,运算结果不影响任何标志位,该组指令使用了直接、寄存器和寄存器间接寻址。 同INC指令一样,在第二条指令中,若直接地址是I/O口,则同样是进行“读改写”操作。 第3章 MSC-51单片机的指令系统53 8. 十进制(BCD码)调整指令(1条) DA A 在进行BCD码运算时,跟在ADD和ADDC指令之后,将相加后存放在累加器A中的结果进行调整修正。 修正的条件和方法为: 若(A03)9或(AC)=1,则(A03)(A03)+6H 若(A47)9或(CY)=1,则(A47)(A47)+60H 若以上两条同时发生,或高4位虽等于9,但低4位修正后有进位,则应加66H调整。 第3章 MSC-51单片机的指令系统54 例3.15 利用十进制加法调整指令作十进制减法运算(应采用补码相加的方法,用9AH减去减数即得以10为模的减数补码)。 设被减数存放在30H单元,减数存放在40H单元,结果存放在50H单元,编程如下:CLR C ;清进位位MOV A,9AH ;求减数补码 SUBB A,40H ADD A,30H ;与补码相加 DA A ;十进制调整 MOV 50H,A ;结果存放在50H单元 第3章 MSC-51单片机的指令系统553.2.3 3.2.3 逻辑运算类指令逻辑运算类指令 逻辑运算类指令包括与、或、异或、清零、求反、左右移位等操作指令。其对应的寻址方式有直接寻址、寄存器寻址和寄存器间接寻址。执行时一般不影响程序状态寄存器PSW,仅当目的操作数为A时对奇偶标志P位有影响,带进位的移位指令影响CY位。逻辑运算指令用到的助记符有ANL、ORL、XRL、RL、RLC、RR、RRC、CLR和CPL共9种。 第3章 MSC-51单片机的指令系统56 1. 循环移位指令(4条) RR A ; RL A ; RLC A ; RRC A ; 第3章 MSC-51单片机的指令系统57 前两条指令是将累加器A的内容循环左移或右移一位,后两条指令是将累加器A的内容连同进位位CY一起循环左移或右移一位。 例3.16 利用累加器循环左移指令对A中内容进行乘10操作。设A=X,编程如下: RL A ;得到2 X MOV B,A;转存到B RL A ;得到4 X RL A ;得到8 X ADD A,B ;A(8 X +2 X) 第3章 MSC-51单片机的指令系统58 2.累加器半字节交换指令(1条) SWAP A ;A30A74 功能:将累加器A的高低两半字节交换。如(A)=50H,执行SWAP A指令后,结果(A)=05H。 3.求反指令(1条) CPL A ;AA 4.清0指令(1条) CLR A ;A0 第3章 MSC-51单片机的指令系统59 5.逻辑与指令(6条) ANL A,data ; AAdata ANL direct,data ;(direct)(direct)data ANL A,Rn ; AARn ANL A,direct ; AA(direct) ANL direct,A ;(direct)(direct)A ANL A, Ri ; AA(Ri) 这组指令的第二条和第五条指令中,如果直接地址正好是I/O口,则也是进行“读改写”操作。 第3章 MSC-51单片机的指令系统60 6.逻辑或指令(6条)ORL A,data ;AAdata ORL direct,data ;(direct)(direct)dataORL A,Rn ;AARnORL A,direct ;AA(direct)ORL direct,A ;(direct)(direct)AORL A, Ri ;AA(Ri) 这组指令的第二条和第五条也具有“读改写”功能。7.逻辑异或指令(6条)XRL A,data; AAdataXRL direct,data ;(direct)(direct)data XRL A,Rn;AARn XRL A,direct ;AA(direct) XRL direct,A ;(direct)(direct)A XRL A, Ri ;AA(Ri) 第3章 MSC-51单片机的指令系统61 例3.17 设P1中内容为AAH,A中内容为15H,执行下列程序:ANL P1,0F0H;P1=0A0H ORL P1,0FH;P1=0AFH XRL P1,A;P1=0BAH 从上例可见,逻辑操作是按位进行的,所以“ANL”操作常用来屏蔽字节中的某些位,要保留的位用“1”去“与”,要清除的位用“0”去“与”。“ORL”操作常用来对字节中的某些位置“1”,要保留的位用“0”去“或”,要置1的位用“1”去“或”。“XRL”操作常用来对字节中的某些位求反,要保留的位用“1”去“异或”。 第3章 MSC-51单片机的指令系统62例3.18 把累加器A中的低4位送到外部RAM的2000H单元中,程序为: MOVDPTR,2000H ;DPTR2000H ANLA,0FH ;AA0FH(屏蔽A的高4位) MOVXDPTR,A ;DPTRA 第3章 MSC-51单片机的指令系统633.2.4 3.2.4 控制转移类指令控制转移类指令 控制转移类指令用于控制程序的走向。包括:无条件转移指令、条件转移指令以及子程序调用和返回指令,作用区间是程序存储器空间,一般不影响标志位。控制转移类指令用到的助记符有:LJMP、AJMP、SJMP、JMP、JZ、JNZ、CJNE、DJNZ等多种。 第3章 MSC-51单片机的指令系统 1.无条件转移指令(4条) 无条件转移指令的功能是当程序执行完此类转移指令后,程序就无条件地转到指令所提供的目的地址去。 LJMP addr16 ;PCaddr16 AJMP addr11 ;PCPC+2,PC100addr11, ; PC1511不变 SJMP rel ;PCPC+2+rel JMP A+DPTR ;PCA+DPTR64 第3章 MSC-51单片机的指令系统65 第一条指令称为长转移指令。该指令为3字节指令,指令中提供16位目标地址,将指令中第二字节和第三字节地址码分别装入PC的高8位和低8位中,以实现程序的转移。所以该指令转移的目标地址范围是在整个64K字节的存储空间内。 第二条指令称为绝对转移指令。该指令为2字节指令,指令中提供11位目标地址,所以该指令转移的目标地址范围是从下条指令开始的2K字节的存储空间内,如图3-8所示。 由图3-8可见,该指令的转移地址由指令操作码的高3位和第二字节组成,可以在2K字节的存储空间内实现转移。 第3章 MSC-51单片机的指令系统66图3-8 AJMP 指令执行示意图 AJMP指令第一字节(操作码)第二字节 A10 A9 A8 0 0 0 0 1A7 A6 A5 A4 A3 A2 A1 A0 PCPC高5位PC低11位 Addr 11 第3章 MSC-51单片机的指令系统67 第三条指令称为相对转移指令又称为短转移指令。该指令为2字节指令,指令中的rel是一个带符号的相对偏移量,范围为-128+127。负数表示向后转移,正数表示向前转移,该指令执行后程序转移到当前PC值与rel之和所指示的单元地址处。 第四条指令称为间接转移指令又称散转移指令。转移地址由数据地址指针DPTR与该累加器A中的8位无符号数之和形成。该指令执行后不影响DPTR和A中的原内容,也不影响任何标志位,只是把相加的结果直接送PC,以实现程序的转移。 第3章 MSC-51单片机的指令系统68 例3.19 根据data的数值设计散转表程序,当data=0时,转处理程序G0,当data=1时,转处理程序G1, ,当data=n时,转处理程序Gn。编程如下: MOV A,data RL A ;将A修正为偶数 MOV DPRT,TABLE ;表首址送DPTR JMP A+DPTR ;以A中内容为偏移量跳转TABLE:AJMPG0 AJMPG1 AJMPG2 AJMPGn (注意:data可以是任意数,但由于AJMP是双字节指令, 所以A中的数值必须修正为偶数)。 第3章 MSC-51单片机的指令系统69 2.条件转移指令(13条) 条件转移指令是依据某种特定条件实现转移的指令。条件满足时实现转移,其目标地址在下一条指令的起始地址为中心的256个字节范围内(-128+127);条件不满足时则顺序执行下面一条指令。 条件转移指令非常丰富,包括判累加器零转移、判位状态转移、比较转移和循环转移共4组。 JZ rel ;若A0,则转移,PCPC+2+rel 若A0,则顺序执行,PCPC+2 JNZ rel ;若A0,则转移,PCPC+2+rel 若A0,则顺序执行,PCPC+2 第3章 MSC-51单片机的指令系统70 CJNE A,direct,rel ;若A(direct),则顺序执行, PCPC+3,C0 若A(direct),则转移, PCPC+3+rel,C0 若A(direct),则转移, PCPC+3+rel,C1 CJNEA,#data,rel ;若Adata,则顺序执行, PCPC+3,C0 若Adata,则转移, PCPC+3+rel,C0 若Adata,则转移, PCPC+3+rel,C1 第3章 MSC-51单片机的指令系统71 CJNERn,#data,rel ;若Rndata,则顺序执行, PCPC+3,C0 若Rndata,则转移, PCPC+3+rel,C0 若Rndata,则转移, PCPC+3+rel,C1 CJNERi,#data,rel ;若(Ri)data,则顺序执行, PCPC+3,C0 若(Ri)data,则转移, PCPC+3+rel,C0 若(Ri)data,则转移, PCPC+3+rel,C1 第3章 MSC-51单片机的指令系统72 DJNZRn,rel ;RnRn-1,若Rn0,则转移 PCPC+2+rel若Rn0,则顺序 执行,PCPC+2 DJNZdirect,rel ;(direct)(direct)-1,(direct)0, 则转移,PCPC+3+rel 若(direct)0,则顺序执行, PCPC+3 JC rel ;若C=1,则转移,PCPC+2+ rel 若C=0,顺序执行,PCPC+2 JNC rel ;若C=0,则转移,PCPC+2+ rel 若C=1,顺序执行,PCPC+2 第3章 MSC-51单片机的指令系统73 JB bit,rel ;若(bit)=1,则转移,PCPC+3+ rel 若(bit)=0,顺序执行,PCPC+3 JNB bit,rel ;若(bit)=0,则转移,PCPC+3+ rel 若(bit)=1,顺序执行,PCPC+3 JBC bit,rel ;若(bit)=1,则转移,PCPC+3+ rel 且(bit)0 若(bit)=0,顺序执行, PCPC+3 第3章 MSC-51单片机的指令系统 JZ和JNZ指令是判别累加器A的内容是否为0来确定是顺序执行还是转移。 CJNE是比较转移指令,通过比较前面两个操作数的大小,如果它们的值不相等则转移,相等则继续执行。指令执行后要影响进位位CY,若操作数1小于操作数2,则CY1;若操作数1大于操作数2,则CY0。 JC、JNC、JB和JNB指令的功能分别是判别进位位CY和直接位地址的内容是“1”还是“0”,以此来决定程序的走向。JBC指令的功能是:若直接位地址的内容为“1”则转移,并且同时将该位清0,否则顺序执行。这条指令若是对I/O口某一位操作,也具有“读改写”功能。74 第3章 MSC-51单片机的指令系统75 例3.20MOVP1,87H ;P187H MOVA,55H ;A55H JBP1.3,L1 ;若P1.3=1,转L1,否则不转 JNBACC.3,L2 ;若ACC.3=0,转L2处执行 L1: L2: 第3章 MSC-51单片机的指令系统76 3.调用子程序及返回指令(4条) 程序设计中,要对某段程序反复执行,同时要减少程序的编写和减少浪费

    注意事项

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

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




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

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

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

    收起
    展开