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

第3章89C51单片机汇编语言简介..doc

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

第3章 89C51单片机汇编语言简介 教学目标 本章主要介绍89C51单片机的寻址方式、指令系统、基本程序结构及汇编语言程序的编写,并给出了两个简单的应用实例。通过本章节的学习,读者应初步掌握89C51单片机汇编语言的基本指令,并能够完成一些简单程序的编写和调试。 任务导入: 基于汇编语言的静态LED显示系统的实现: 利用89C51单片机的I/O端口驱动一个共阳极数码管,在数码管上循环显示0-9数字,时间间隔0.5秒。 任务分析 要实现用一个数码管循环显示数字0~9的功能,我们可把数码管的段选线连接到单片的I/O口上,再通过程序让单片机的I/O口分时输出0~9对应的段码就可以了。单片机的程序又如何编写呢?通过本章的学习,就可以用单片机的汇编语言让数码管按照要求进行显示。 任务必备知识 3.1 89C51单片机指令系统 3.1.1 89C51单片机指令分类 89C51单片机指令系统共有111条指令。这些指令可按不同方法进行分类: 1.按字节数分 单字节指令(49条)、双字节指令(45条)、三字节指令(17条)。 2.按指令的执行时间分 单机器周期指令(64条)、双机器周期指令(45条)、四机器周期指令(2条)。 3.按指令的功能分 数据传送指令(28条)、算术运算指令(24条)、逻辑运算指令(25条)、控制转移指令(17条)、位操作指令(17条)。 指令一般由两部分组成,即操作码和操作数。在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写是相当有用的。 Rn——当前选中的寄存器区的8个工作寄存器R0—R7(n=0-7)。 Ri——当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1) direct—内部数据存储单元的8位地址。包含0—127(255)内部存储单元地址和特殊功能寄存地址。 #data—指令中的8位常数。 #data16—指令中的16位常数。 addr16—用于LCALL和LJMP指令中的16目的地地址,目的地址的空间为64kB程序存储器地址。 #addr11—用于ACALL和AJMP指令中的11目的地地址,目的地址必须放在与下条指令第一个字节同一个2kB程序存储器空间之中。 rel—8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对于下条指令的第一个字节开始的-128——+127范围内。 @—间接寄存器寻址或基址寄存器的前缀。 /—为操作的前缀,声明对该位操作数取反。 DPTR—数据指针。 bit—内部RAM和特殊功能寄存器的直接寻址位。 A—累加器。 B—累加器B,用于乘法和除法指令中。 C—进位标志位。 (x)—某地址单元中的内容。 ((x))—由X寻址单元中的内容。 3.1.2 汇编指令格式 各种汇编语言的语句格式是基本相同的,表示如下: [标号:] 操作码助记符 [第一操作数] [,第二操作数] [,第三操作数] [;注释] 即一条汇编语句是由标号、操作码、操作数和注释四个都分所组成。其中方括号括起来的是可选择部分,可有可无,视需要而定。 1.标号 标号是表示指令位置的符号地址,它是以英文字母开始的字母或数字组成的字符串,并以“:”结尾。通常在子程序入口或转移指令的目标地址处才赋予标号。有了标号,程序中的其它语句才能访问该语句。89C51汇编语言有关标号的规定如下: 1)标号是由ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。 2)不能使用本汇编语言已经定义了的符号作为标号,如指令助记符,伪指令助记符以及寄存器的符号名称等。 3)标号后边必须跟以冒号。 4)同一标号在一个程序中只能定义一次,不能重复定义。 5)一条语句可以有标号,也可以没有标号,标号的有无决定着本程序中的其它语句是否需要访问这条语句。 下面例举一些例子,以加深了解。 错误的标号 正确的标号 2BT:(以数字开头) LOOP4: BEGIN(无冒号) STABL: TB+5T:(“+”号不能在标号中出现) TABLE: ADD:(用了指令助记符) Q¥: 2.操作码 操作码助记符是表示指令操作功能的英文缩写。每条指令都有操作码,它是指令的核心部分。操作码用于规定本语句执行的操作,操作码可为指令的助记符或伪指令的助记符,操作码是汇编指令中唯一不能空缺的部分。 3.操作数 操作数用于给指令的操作提供数据或地址。在一条指令中,可能没有操作数,也可能只包括一项,也可能包括二项、三项。各操作数之间以逗号分隔,操作码与操作数之间以空格分隔。操作数可以是立即数,如果立即数是二进制数,则最低位

文档评论(0)

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

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

1亿VIP精品文档

相关文档