高级语言独立于计算机硬件,[计算机硬件及网络]第四章 汇编语言程序设计.ppt...

本文介绍了单片机汇编语言程序设计的基础,包括程序流程图的绘制、伪指令的应用,以及汇编语言源程序的组织。重点讲解了起始地址伪指令ORG、汇编结束伪指令END以及EQU伪指令的作用。通过实例演示,帮助读者理解如何安排寄存器和数据存储,以及如何设计清晰的程序结构。
摘要由CSDN通过智能技术生成

[计算机硬件及网络]第四章 汇编语言程序设计

第四章 汇编语言程序设计 4.1 汇编语言程序设计概述 4.2 汇编语言实用程序设计 4.1 汇编语言程序设计概述 4.1.1 程序流程图 4.1.2 伪指令 4.1.3 汇编语言源程序的汇编 4.1 汇编语言程序设计概述 4.1 汇编语言程序设计概述 所谓汇编语言程序设计就是使用汇编指令来编写计算机程序。在进行单片机汇编语言程序设计时要注意:在程序中要具体安排寄存器、数据存储单元;熟悉单片机的硬件结构,特别是特殊功能寄存器、端口、定时器/计数器、中断等内容。 汇编语言程序设计的步骤如下: 1.明确要解决的问题和要求。 2.根据要解决的问题,制定程序流程框图。如过程较大,可以先画出粗框图,再根据要求对框图进行细化。 3.根据程序框图,编写程序。如果程序较大,可按功能模块进行编写。 4.对汇编语言程序进行调试,并进行优化处理。 4.1.1 程序流程图 程序流程图是用图解法表示解决问题的步骤,它能直观形象地表示各部分的逻辑关系及程序结构,利用流程图能方便地发现和分析程序结构存在的错误,便于掌握和进行交流,是程序设计的重要工具。 流程图中所采用的各种常用符号如下。 1.端点框:是一个椭圆矩形,如图4-1(a)所示,表示程序的开始或结束。在该框内可填入相应的文字。例如“开始”,“结束”或者程序名,起始地址等。 2.流程线:表示程序执行的流向,流程线如图4-1(b)所示。 3.处理框:表示一种处理功能或者过程,框内用文字简要说明,处理框如图4-1(c)所示。 4.1.1 程序流程图 4.判断框:用于指示一个判定点,从这点产生分支。在框内应注明测试条件,而测试结果则注明在各分支流程线上,判断框如图4-1(d)所示。 5.连接框:表示流程中止而并非流程结束。通常用来连接同一页上的流程,以避免流程线的交叉,使流程图阅读起来清晰;它也可用来连接不同页上的流程,注意在连接处连接框内的标识符要相同,连接框如图4-1(e)所示。 4.1.2 伪指令 伪指令是用来告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不能被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行,故称为“伪指令”。MCS-51系列单片机中常用伪指令如下: 1.起始地址伪指令 ORG(origin) ORG伪指令用来规定目标程序段或数据块的起始地址。其格式为: [标号:] ORG 16位地址 其中,方括号内的标号是任选项,可有可无。 通常,在汇编语言程序的开始处均用ORG伪指令指定程序存放的起始地址。 4.1.2 伪指令 2.汇编结束伪指令 END END伪指令表示源程序到此结束,在一个程序中,只允许出现一条END语句,而且必须安排在源程序的末尾。否则,汇编程序对END语句后面的所有语句都不进行汇编,其格式为: [标号:] END 其中,方括号内的标号是任选项,可有可无。 例4-1-1 ORG 0030H ;从程序存储器0030H开始存储程序 START:MOVA,#34H MOVB,A END ;源程序到此结束 4.1.2 伪指令 3.赋值伪指令 EQU(equate) EQU伪指令表示将伪指令右边的数值或地址赋给左边用户定义的符号。其格式为: 字符名称 EQU 数据或地址 由EQU伪指令赋值的字符名称在源程序中可以作为立即数使用,也可以作为数据地址、代码地址或位地址。由EQU伪指令所定义的符号必须先定义后使用,故该语句通常放在程序开头。 例4-1-2 BUFFEREQU08H;BUFFER的值等于08H BLOCKEQU30H;将30H赋值给字符名称BLOCK MOV A, #BUFFER ;伪指令定义的符号作为立即数使用 MOV B,BLOCK ;伪指令定义的符号作为地址使用 4.1.2 伪指令 4.字节定义伪指令 DB(define byte) DB伪指令表示从指定的地址单元开始,定义若干个字节存储单元的内容。其格式为:[标号:]DB 8位(二进制)数据表 例4-1-3 ORG1000H FIRST:DB 73H,01H,91H,07H TABLE:DB 96,40H,‘C’,‘7’,1101B 经汇编后,程序存储器有关单元内容为:(1000H)=73H,(1001H)=01H, ( 1002H)=91H, ( 1003H)=07H,(1004H)=60H,(1005H)=40H, ( 1006H)=43H, ( 1007H)=37H, ( 1008H)=0DH, 其中,用‘’来定义

1.80C51单片机汇编语言有何特点? 答: 汇编语言结构紧凑、灵活,汇编成的目标程序效率高,具有占存储空间少、运行速度快、实时性强等优点。它是面向机器的语言,对于单片机硬件的操作直接、方便,有利于初学者对单片机结构的认知。 但它与高级语言相比移植性不好、编程复杂、对编程人员的基础要求高。 2.利用80C51单片机汇编语言进行程序设计的步骤如何? 答: 一、任务分析 首先,要对单片机应用系统的设计目标进行深入分析,明确系统设计任务:功能要求和技术指标。然后对系统的运行环境进行调研。这是应用系统程序设计的基础和条件。 二、算法设计 经过任务分析和环境调研后,已经明确的功能要求和技术指标可以用数学方法(或模型)来描述,进而把一个实际的系统要求转化成由计算机进行处理的算法。并对各种算法进行分析比较,并进行合理的优化。 三、流程描述 程序的总体构建。先要确定程序结构和数据形式,资源分配和参数计算等。然后根据程序运行的过程,规划程序执行的逻辑顺序,用图形符号将程序流程绘制在平面图上。应用程序的功能通常可以分为若干部分,用流程图将具有一定功能的各部分有机地联系起来。 流程图可以分为总流程图和局部流程图。总流程图侧重反映程序的逻辑结构和各程序模块之间的相互关系;局部流程图反映程序模块的具体实施细节。 3.常用的程序结构有哪几种?特点如何? 答: 顺序程序:无分支、无循环结构的程序,其执行流程是依指令在存储器中的存放顺序进行的; 分支程序:可以改变程序的执行顺序; 循环程序:按某种控制规律重复执行的程序,控制一部分指令重复执行若干次,以便用简短的程序完成大量的处理任务。 4.子程序调用时,参数的传递方法有哪几种? 答: 利用累加器或寄存器; 利用存储器; 利用堆栈。
在清华计算机系,汇编语言程序设计通常作为本科生接触到的第一门计算机系统课程,被定位为该系列的入门课,起到“承上启下”的作用。 主要的授课内容包括: (1)汇编语言与计算机系统结构、指令集初步、数制与整数表示、浮点数表示; (2)80x86计算机组织与保护模式、X86指令系统与寻址方式、C与X86汇编、X86汇编编程; (3)MIPS汇编。 课程强调汇编语言的软硬件分界与桥梁作用,使得学习者能把程序的执行与计算机的工作过程紧密联系起来,以便深入地感知、理解和体会计算机的逻辑功能以及各种软件系统的原理,逐步形成软件系统功能构筑在其上,硬件系统功能运行于其下的计算机系统思维能力。 与以往的讲法不同,本课程突出了“承上启下”这一理念,在内容编排上进一步突出了与相关课程的衔接,尤其是与C语言编程、编译原理、组成原理的衔接。比如说,(1)强化与高级语言的联系,从典型的C语言代码段入手,通过编译成汇编代码来详细解释程序员角度的X86结构运行模型。掌握这两种语言的对应可以将程序的执行与计算机的工作过程紧密联系起来,直接体现汇编语言本身固有的特点,即它是最易于将“程序”和“机器”统一起来的一个结合点。(2)进一步的通过对不同汇编代码的解释来给出微体系结构方面的差异。比如,同一段C代码通过不同的编译器/编译器开关所生成的代码是不一样的,为什么不一样?这就可以通过处理器微体系结构的差异来简单解释。这种做法可以为后续课程,如编译原理、计算机组成原理等提供一些先导知识,并有利于学生从整个系统构成的角度来理解各个课程的作用与位置。(3)加入MIPS汇编(包括部分体系结构的内容),为后续的以MIPS为核心的计算机组成原理、编译原理、操作系统等专业课程奠定MIPS汇编语言的基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值