网站大量收购独家精品文档,联系QQ:2885784924

第三章单片机汇编设计案例.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
*;*;程序设计语言;机器语言;汇编语言; 地址;汇编程序;高级语言;独立于机器,可移植性强结构化设计,程序清晰,但是占用存储空间大;指令性语句使CPU执行一个具体的操作。 伪指令不要求计算机做任何操作,也没有对应的机器码,不产生目标程序,不影响程序的执行,仅仅是能够帮助进行汇编的一些指令。;*; 在51单片机中的指令系统中,有单字节、双字节、三字节等不同长度的指令。 单字节指令只有一个字节,操作码和操作数都在这个字节中。51指令系统共有单字节指令49条。 ;§3.2 51系列单片机寻址方式;操作数是常数,常数又称为立即数,使用时直接出现在指令中,紧跟在操作码的后面,作为指令的一部分。在汇编指令中,立即数前面以“#”符号作前缀。在程序中通常用于给寄存器或存储器单元赋初值,例如: MOV A,#20H 其功能是把立即数20H送给累加器A,其中源操作数20H就是立即数。指令执行后累加器A中的内容为20H。 ;*;§3.2 51系列单片机寻址方式; 直接寻址方式的寻址范围包括: 1.低128单元。在指令中直接以单元地址形式给出。 2.专用寄存器。专用寄存器除了以单元地址形式给出外,还可以以寄存器符号形式给出。直接寻址是访问专用寄存器的唯一方法。例如指令: MOV A, SBUF SBUF是专用寄存器名。;§3.2 51系列单片机寻址方式;; 寄存器间接寻址用到的寄存器只能是通用寄存器R0、R1和数据指针寄存器DPTR,它能访问的数据是片内数据存储器和片外数据存储器。 其中,片内数据存储器只能用R0和R1作指针间接访问; 片外数据存储器,低端的256字节单元,既可以用两位十六进制地址以R0或R1作指针间接访问,也可用四位十六进制地址以DPTR作指针间接访问. 而高端的字节单元则只能以DPTR作指针间接访问。;对于片内RAM和片外RAM的低端256字节都可以用R0和R1作指针访问,它们之间用指令来区别。片内RAM访问用MOV指令,片外RAM访问用MOVX指令。 ;3.2.5相对寻址 ;3.2.6 变址寻址 ;;§3.2 51系列单片机寻址方式;§3.3 51系列单片机指令系统;3.3.1.1 片内数据存储器传送指令MOV;(2)以Rn为目的操作数 MOV Rn,A ;Rn ← (A) MOV Rn,direct ;Rn ←(direct) MOV Rn,#data ;Rn ← #data (3)以直接地址direct为目的操作数 MOV direct,A ;direct ← (A) MOV direct,Rn ;direct ←(Rn) MOV direct,direct ;direct ←(direct) MOV direct,@Ri ;direct ←((Ri)) MOV direct,#data ;direct ← #data;(4)以间接地址@Ri为目的操作数 MOV @Ri,A ;(Ri) ← (A) MOV @Ri,direct ;(Ri) ←(direct) MOV @Ri,#data ;(Ri) ← #data (5)以DPTR为目的操作数 MOV DPTR,#data16 ;DPTR ← #data16 注意,源操作数和目的操作数中的Rn和@Ri不能相互配对。如不允许有“MOV Rn,Rn”,“MOV @Ri,Rn”这样的指令,在MOV指令中,不允许在一条指令中同时出现工作寄存器,无论它是寄存器寻址还是寄存器间接寻址。 ;3.3.1.2 片外数据存储器传送指令MOVX ;3.3.1.3 程序存储器数据传送指令MOVC; 【例3-1】写出完成下列功能的程序段。 (1)将R0的内容送R6中 程序为:MOV A,R0 MOV R6,A (2)将片内RAM 30H单元的内容送片外60H单元中 程序为:MOV A,30H MOV R0,#60H MOVX @R0,A (3)将片外RAM 1000H单元的内容送片内20H单元中 程序为:MOV DPTR,#1000H MOV A,@DPTR MOV 20H,A;(4)将ROM 2000H单元的内容送片内RAM的30H单元中 程序为:MOV A,#0 MOV DPTR,#2000H MOVC A,@A+DPTR MOV 30H,A ;3.3.1.4 数据交换指令; 【例3-2】若R0的内容为30H,片内RAM 30H单元的内容为23H,累加器A的内容为45H, 则执行XCH A,@R0指令后片内RAM 30H单元的内容为45H,累加器A中的内容为23H。 若执行SWAP A指令,则累加器A的内容为54H。;3.3.1.5 堆栈指令;

文档评论(0)

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

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

1亿VIP精品文档

相关文档