单片机第4章汇编语言程序设计概论.pptVIP

  • 9
  • 0
  • 约 88页
  • 2016-07-22 发布于湖北
  • 举报
单片机第4章汇编语言程序设计概论

第四章 汇编语言 程序设计 ;4.1.1 单片机编程语言 常用的编程语言是汇编语言和高级语言。 1.汇编语言 用英文字符来代替机器语言,这些英文字符被称为助记符汇编语言:用助记符表示的指令。 汇编语言源程序:用汇编语言编写的程序。 “汇编”:汇编语言源程序需转换(翻译)成为二进制代码表示的机器语言程序,才能识别和执行。 完成“翻译”的程序称为汇编程序。经汇编程序“汇编”得到的以“0”、“1”代码形式表示的机器语言程序称为目标程序。 ;优点:用汇编语言编写程序效率高,占用存储空间小,运行速度快,能编写出最优化的程序, 缺点:可读性差,离不开具体的硬件,是面向“硬件”的语言通用性差。 2.高级语言 不受具体“硬件”的限制,优点:通用性强,直观、易懂、易学,可读性好。 目前多数的51单片机用户使用C语言(C51)来进行程序设计,已公认为高级语言中高效简洁而又贴近51单片机硬件的编程语言。 将C语言向单片机上移植,始于20世纪80年代的中后期。 ;经过十几年努力,C51已成为单片机的实用高级编程语言。 尽管目前已有不少设计人员使用C51来进行程序开发,但在对程序的空间和时间要求较高的场合,汇编语言仍必不可少。 在这种场合下,可使用C语言和汇编语言混合编程。在很多需要直接控制硬件且对实时性要求较高的场合,则更是非用汇编语言不可。 掌握汇编语言并能进行程序设计,是学习和掌握单片机程序设计的基本功之一。; 伪指令:为了便于编程和对汇编语言程序进行汇编,各种汇编程序都提供一些特殊的指令,供人们编程使用。 由伪指令确定的操作称为伪操作。 伪指令又称汇编程序控制译码指令。 “伪”体现在汇编时不产生机器指令代码,不影响程序的执行,仅指明在汇编时执行一些特殊的操作。 ; ⒈ ORG 汇编起始地址伪指令 指令格式为: ORG <表达式> 含义:向汇编程序说明,下述程序段的起始地址由表达式指明。表达式通常为16进制地址码。 ??一般规定,在由ORG伪指令定位时,其地址应当由小到大,不能重叠。 ??它的有效范围一直到下一条ORG伪指令??现为止。 ??跟在ORG伪指令后面的程序段或数据段是绝对地址还是浮动地址段,依赖于ORG右边的表达式性质。 ; ORG 1000H START:MOV A,#12H 含义:通知汇编程序,从 START开始的程序段,其起始地址由1000H开始。由于1000H是立即数型地址码,所以还隐含地指明该程序段是绝对地址段。 假定ORG右边的表达式是浮动程序段中定义的标号RELOCA,则 ORG RELOCA SUBROU:…… 表明 SUBROU起始于 RELOCA(它是相对地址)浮动地址的程序段。 ; ⒉ END(END of assembly) 汇编结束伪指令 ?汇编结束伪指令一般有以下两种格式: 主程序模块:<标号> END <表达式> 子程序模块: <标号> END 含义:通知汇编程序,该程序段汇编至此结束。 END语句应设置在整个程序(包括伪指令在内)的后面。 当源程序为主程序时,END伪指令中可有标号,这个标号应是主程序第一条指令的符号地址。若源程序为子程序,则在 END伪指令中不需要带标号。 ; ⒊ EQU 赋值伪指令 ? 指令格式为:<标号> EQU <表达式> 含义:把表达式赋值于标号,这里的标号和表达式是必不可少的。例如: LOOP EQU 2002H 是向汇编程序表明,标号LOOP的值为2002H。又如: LOOP1 EQU LOOP LOOP已赋值为2002H,则相当于LOOP1=LOOP,即LOOPI也为2002H,在程序中LOOP和LOOP1可以互换使用。 用EQU语句给一个标号赋值以后,在整个源程序中该标号的值是固定的,不能更改。;; 若不采用ORG伪指令专门规定数据区的起始地址,则数据区的起始地址即根据DB命令前一条指令的地址确定。这时DB所定义的数据字节的起始地址为DB命令前一条指令的地址加上该指令的字节数。?; 5. DW(Define Word) 定义字伪指令 指令格式为:<标号> DW <表达式或表达式表> 含义:把字或字串值存入由标号开始的连续存储单元中,且把字的高字节数存入低地址单元,低字节数存入高地址单元。按顺序连续存放。 DW 100H,3456H,814 表示按顺序存入01H,00H,34H,56H,03H

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档