单片机指令系统、汇编程序设计、C51程序设计.ppt

单片机指令系统、汇编程序设计、C51程序设计.ppt

  1. 1、本文档共198页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

工程二指令系统;2.1概述;1.机器指令;2.汇编语言指令;两种语言指令对照:;2.28051汇编语言指令;1.标号;2.操作码;3.操作数;4.注释;指令的描述中经常用到一些特殊符号;MCS-51单片机指令系统的分类;一、寻址方式;1.存放器寻址;2.直接寻址;例:MOVA,3AH;XXH;MOVA,@R0;4.立即数寻址;这类指令大都是双字节指令,仅有指令:MOVDPTR,#DATA16是三字节指令,它提供两字节立即数,如:MOVDRTR,#1600H,它的机器指令格式下所示:

10010000

00010110

00000000

使用专用的汇编语言编译程序把编写的汇编语言源程序编译成机器语言程序,对立即数的书写一般有要求:对于单字节立即数,假设数值大于等于A0H,那么要在其前面加一个0,如指令“MOVA,#0A0H〞,该指令含义是把立即数A0H送累计器;对于双字节立即数,假设数值大于等于A000H,那么要在其前面加一个0。对于直接地址和偏移量也按相同方法书写。;5.变址寻址〔基址存放器+变址存放器间接寻址〕;6.相对寻址;7.位寻址;寻址空间及举例;例1将D5H位的内容送入Cy,可用几种方式表达?;例2判断以下指令各操作数的寻址方式;二、数据传送类指令;累加器A;1.内部数据传送指令;〔1〕以累加器A为目的的传送指令;(2)以直接地址为目的的传送指令;〔3〕以通用存放器Rn为目的的传送指令;〔4〕以存放器间接地址为目的的传送指令;例3设内部RAM中的30H单元的内容为50H,试分析执行下面程序后各有关单元的内容。

MOV60H,#30H

MOVR0,#60H

MOVA,@R0

MOVR1,A

MOV40H,@R1

MOV60H,30H;2.16位数据传送指令;3.数据交换指令;MOVA,30H

XCHA,40H

MOV30H,A;〔1〕半字节交换指令;例5设内部数据存储器的60H、61H单元中连续存放着4位BCD码,试编写一段程序将这4位BCD码倒序排列。;4.片外数据存储器传送指令;例6将累加器A中的内容送入外部数据存储器的0060H单元。;例7将外部存储器的2000H单元的内容送入2100H单元。;5.ROM数据访问指令;两个指令的比较;例8:设A的内容为BCD码〔高4位为全0〕,试用查表法来求得相应的ASCII码。;6.栈操作指令;例9〔SP〕=30H,〔40H〕=88H,〔50H〕=11H,指出以下程序???的执行结果和功能。;; ADDCA,Rn;〔A〕←(Cy)+(A)+(Rn)

ADDCA,direct;〔A〕←(Cy)+(A)+(direct)

ADDCA,@Ri;〔A〕←(Cy)+(A)+((Ri))

ADDCA,#data;〔A〕←(Cy)+(A)+data

这些指令是将源字节单元的内容与累加器A的内容相加,并加上进位位Cy的内容,结果放入累加器A中。指令执行将影响标志AC、OV、Cy、P。其余功能和上面的ADD指令相同。带进位加法指令主要用于多字节加法的多字节求和,以考虑低字节求和向高字节的进位。;例11计算6655H+11FFH的程序,结果放入50H、51H中。;DAA;假设[(A)3~09]或[(AC)=1],那么(A)3~0←(A)3~0+06H

;假设[(A)7~49]或[(Cy)=1],那么[(A)7~4←[(A)7~4+60H

;MOVA,#56H

ADDA,#67H

DAA;例13设有4个压缩BCD码,分别放在内部数据存储器50H~51H单元和60H~61H单元中,试编写求出两个数的和的程序,结果存放到40H~41H单元中。

;〔4〕?加1指令;2.减法指令;例15计算0EE33H-A0E0H的程序;〔2〕减1指令;3.乘、除法指令;〔2〕除法指令;四.逻辑运算类指令;2〕累加器A的内容带进位标志位循环左移指令:

RLCA;例3-17假设〔A〕=0BDH,Cy=0,分析执行RLCA后,〔A〕和Cy的结果。;ANLA,Rn

ANLA,direct

ANLA,@Ri

ANLA,#data

ANLdirect,A

ANLdirect,#data

这组指令的功能是

文档评论(0)

mend45 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档