平凡单片机教程 51单片机

  • a8_618707
    了解作者
  • 693.1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-21 07:34
    上传日期
平凡单片机教程平凡单片机教程平凡单片机教程平凡单片机教程平凡单片机教程平凡单片机教程平凡单片机教程平凡单片机教程平凡单片机教程
平凡单片机教程 51单片机.rar
内容介绍
<html> <head> <title>汇编指令的格式(伪指令)</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body bgcolor="#CCCCCC"> <b> <p align="center" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font size="2" face="宋体" lang="ZH-CN">第四节</font><font size="2"><font face="宋体"> </font><font face="宋体" lang="ZH-CN">伪</font><font face="宋体"> </font> <font face="宋体" lang="ZH-CN">指</font><font face="宋体"> </font></font> <font size="2" face="宋体" lang="ZH-CN">令</font></p> </b> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" lang="ZH-CN" size=2>伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" lang="ZH-CN" size=2>许多伪指令要求带参数,这在定义伪指令时由“表达式”域指出,任何数值与表达式匀可以作为参数。</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" lang="ZH-CN" size=2>不同汇编程序允许的伪指令并不相同,以下所述的伪指令仅适用于MASM51系统,但一些基本的伪指令在大部份汇编程序中都能使用,当使用其它的汇编程序版本时,只要注意一下它们之间的区别就可以了。MASM51中可用的伪指令有:</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> ORG </font><font face="宋体" lang="ZH-CN" size=2>设置程序起始地址</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> END </font><font face="宋体" lang="ZH-CN" size=2>标志源代码结束</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> EQU </font><font face="宋体" lang="ZH-CN" size=2>定义常数</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> SET </font><font face="宋体" lang="ZH-CN" size=2>定义整型数</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> DATA </font><font face="宋体" lang="ZH-CN" size=2>给字节类型符号定值</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> BYTE </font><font face="宋体" lang="ZH-CN" size=2>给字节类型符号定值</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> WROD </font><font face="宋体" lang="ZH-CN" size=2>给字类型符号定值</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> BIT </font><font face="宋体" lang="ZH-CN" size=2>给位地址取名</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> ALTNAME </font><font face="宋体" lang="ZH-CN" size=2>用自定义名取代保留字</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> DB </font><font face="宋体" lang="ZH-CN" size=2>给一块连续的存储区装载字节型数据</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> DW </font><font face="宋体" lang="ZH-CN" size=2>给一块连续的存储区装载字型数据</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> DS </font><font face="宋体" lang="ZH-CN" size=2>预留一个连续的存储区或装入指定字节。</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> INCLUDE </font><font face="宋体" lang="ZH-CN" size=2>将一个源文件插入程序中</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> TITLE </font><font face="宋体" lang="ZH-CN" size=2>列表文件中加入标题行</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> NOLIST </font><font face="宋体" lang="ZH-CN" size=2>汇编时不产生列表文件</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> NOCODE </font><font face="宋体" lang="ZH-CN" size=2>条件汇编时,条件为假的不产生清单</font></p> <ol> <b> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font size="2" face="宋体" lang="ZH-CN">一、</font><font size="2" face="宋体">ORG </font><font face="Arial"> <p style="line-height: 150%; margin-top: 0; margin-bottom: 0"></p> </font></b> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" lang="ZH-CN" size=2>伪指令</font><font face="宋体" size=2>ORG</font><font face="宋体" lang="ZH-CN" size=2>用于为在它之后的程序设置地址值,它有一个参数,其格式为:</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> ORG </font><font face="宋体" lang="ZH-CN" size=2>表达式</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" lang="ZH-CN" size=2>表达式可以是一个具体的数值,也可以包含变量名,如果包含变量名,则必须保证,当第一次遇到这条伪指令时,其中的变量必须已有定义(已有具体的数值),否则,无定义的值将由</font><font face="宋体" size=2>0</font><font face="宋体" lang="ZH-CN" size=2>替换,这将会造成错误。在列表文件中,由</font><font face="宋体" size=2>ORG</font><font face="宋体" lang="ZH-CN" size=2>定义的指令地址会被打印出来。</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> ORG</font><font face="宋体" lang="ZH-CN" size=2>指令有什么用途呢?指令被翻译成机器码后,将被存入系统的ROM中,一般情况下,机器码总是一个接一个地放在存储器中,但有一些代码,其位置有特殊要求,典型的是五个中断入口,它们必须被放在</font><font face="宋体" size=2>0003H,000BH,0013H,001BH</font><font face="宋体" lang="ZH-CN" size=2>和</font><font face="宋体" size=2>0023H</font><font face="宋体" lang="ZH-CN" size=2>的位置,否则就会出错,如果我们编程时不作特殊处理,让机器代码一个接一个地生成,不能保证这些代码正好处于这些规定的位置,执行就会出错,这时就要用到</font><font face="宋体" size=2>ORG</font><font face="宋体" lang="ZH-CN" size=2>伪指令了。看如下例子:</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" lang="ZH-CN" size=2>例:</font></p> <i><font face="宋体" size=2> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">INT_0 EQU 1000H</p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">TIME_0 EQU 1010H</p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">INT_1 EQU 1020H</p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">TIME_1 EQU 1030H</p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0">SERIAL EQU 1040H</p> </font> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> AJMP START ;</font><font face="宋体" lang="ZH-CN" size=2>跳转到主程序起始点</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> LJMP INT_0 ;</font><font face="宋体" lang="ZH-CN" size=2>外中断</font><font face="宋体" size=2>0</font><font face="宋体" lang="ZH-CN" size=2>处理程序</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font face="宋体" size=2> LJMP TIME_0 ;</font><font face="宋体" lang="ZH-CN" size=2>定时中断</font><font face="宋体" size=2>0</font><font face="宋体" lang="ZH-CN" size=2>处理程序</font></p> <p align="JUSTIFY" style="line-height: 150%; margin-top: 0; margin-bottom: 0"> <font f
评论
    相关推荐
    • 51单片机
      51单片机
    • 51单片机教程
      来自平凡单片机网站(word)
    • 51单片机程序
      LED流水灯实验是能较好的引导单片机爱好者入门学习,该程序实现了LED间隔10ms循环点亮
    • 51单片机程序
      包含51单片机的基础程序,以及综合程序。供初学者学习,及编写一定模块程序
    • 51单片机万年历
      该资源为51单片机资源,采用DS1302为时钟源,用LCD1602进行显示,压缩包里面还有protuse的仿真图,从程序到仿真齐全。
    • 51单片机WIFI
      利用wifi对51单片机进行控制,内附原理图及PCB板制作
    • 51单片机学习
      适合想学习51单片机的新人,能够快速学习,里面有多种实例可以方便学习。另外有很多视频,如果想要的话可以发邮件到:www.gaoju1024@qq.com
    • 51单片机万年历
      51单片机写的万年历程序加电路,经调试完全成功,希望对各位有帮助
    • 51单片机教程
      51单片机的初级教程,里面包含单片机的各个模块的详细介绍,以及各个模块的验证程序,能够学会单片机的操作
    • 单片机课件 51单片机
      课件 51单片机 C程序设计