第6章汇编语言子程序设计
.第六章:子程序设计6.1子程序的设计方法6.2子程序的嵌套6.3子程序举例.6.1子程序的设计方法子程序:具有特定功能的,且可以多次反复调用的程序段优点:节省存储空间;提高程序设计的效率和质量;使程...6.1子程序的调用与返回指令6.1.1子程序的调用指令CALL6.1.2返回指令RET下一节6
第6章汇编语言子程序设计Tag内容描述:<p>1、,第六章:子程序设计,6.1子程序的设计方法6.2子程序的嵌套6.3子程序举例,.,6.1子程序的设计方法,子程序:具有特定功能的,且可以多次反复调用的程序段,优点:节省存储空间;提高程序设计的效率和质量;使程序简洁、清晰、易读,便于维护,适用场合:出于程序模块化的考虑;某段程序在程序中多次出现,.,6.1子程序的设计方法,子程序的一般结构:,保护现场,子程序功能,恢复现场,返回主程序,子。</p><p>2、6.1 子程序的调用与返回指令,6.1.1 子程序的调用指令CALL 6.1.2 返回指令RET,下一节,6.1.1 子程序的调用指令CALL,指令格式: CALL OPD 注:过程名或子程序名就是子程序入口处的符号地址。执行CALL指令时,首先要保留断点地址于堆栈中,然后程序转移到指定的子程序入口地址处去执行子程序。 由于子程序与调用它的程序可能在同一个段中,也可以不在同一个段中, CALL指令在转移到子程序入口地址时有两种寻址方式:直接寻址方式和间接寻址方式或者称为直接调用和间接调用。 前面提到,指令指针寄存器IP总是指向下一条将要执行的指令。在执行。</p><p>3、第八章子程序设计,8.1 子程序的引出 8.2 子程序(过程)定义伪指令 8.3 调用和返回指令 8.4 子程序设计方法 8.5 子程序嵌套 8.6 递归子程序 8.7 可重入子程序 8.8 程序的连接,8.1 子程序的引出,在我们编写解决实际问题的程序时,往往会遇到多处使用相同功能的程序段, 使用该程序段的唯一差别是对程序变量赋不同的值,例如计算: S=2X+3Y+150 计算上述函数需要多次使。</p><p>4、2019/11/23,第9章子程序的设计,1,8086/8088和ARM核汇编语言程序设计,第9章子程序设计,教学重点:子程序设计方法,2019/11/23,第9章子程序的设计,2,9.2子程序的参数传递,9.3子程序嵌套与递归,第9章子程序设计,9.1子程序。</p><p>5、第六章汇编语言程序设计,6.1汇编语言程序概述6.2汇编语言程序的上机过程6.3系统功能调用,STACK_SEGSEGMENTSTACK;定义堆栈段STACK_SEGDW100HDUP(?);分配堆栈段大小为512字节STACK_SEGENDS;堆栈段结束DATA_SEGSEGMENT;定义数据段DATA_SEGXDB10;定义数据YDB5ZDB1ANSDB?DATA_SEGENDS;数据段结束C。</p><p>6、第6章子程序设计,6.1子程序的概念与特性6.2子程序的结构形式6.3子程序调用和返回指令6.4子程序的设计6.5子程序的参数传递方法6.6子程序的嵌套与递归6.7综合举例,6.1子程序的概念与特性,6.1.1子程序的概念人们在编写程序时,常常会遇到这样的情况:某些完成相同的功能,只是加工的数据略有不同的指令组(程序段)需要在一个程序的若干不同地方使用多次,或是在一个程序中的多个地方或多个程序中的。</p><p>7、第6章子程序设计及系统调用 调用程序与子程序 调用与返回指令 子程序设计,6.1 调用程序与子程序,子程序:在许多应用程序中,常常需要多次使用某功能的指令序列。这时,为了减少重复编写程序,节省内存空间,把这一功能的指令序列组成一个相对独立的程序段。在程序运行时,如果需要使用这个给定的功能,就转移到这个独立的程序段,待这个独立的程序段指令序列执行完后,又返回到原来位置继续运行程序。我们把这个相对独立的程序段就叫子程序或过程。 调用程序:编制程序时,按需要转向子程序,称为子程序调用,或称为过程调用。调用子程序的。</p><p>8、第6章 汇编语言程序设计,6.1汇编源程序的编程格式 汇编源程序有两种编程格式:一种格式只能生成扩展名为EXE的可执行文件,称为EXE文件的编程格式;另一种格式可以生成扩展名为COM的可执行文件,称为COM文件的编程格式。 6.1.1 EXE文件的编程格式 EXE文件的编程格式允许源程序使用多个逻辑段,在实模式下,每个逻辑段的目标块不超过64KB,适合于编写大型程序。,开 始,6.1.2 COM。</p><p>9、第6章子程序设计及系统调用 调用程序与子程序 调用与返回指令 子程序设计,6.1 调用程序与子程序,子程序:在许多应用程序中,常常需要多次使用某功能的指令序列。这时,为了减少重复编写程序,节省内存空间,把这一功能的指令序列组成一个相对独立的程序段。在程序运行时,如果需要使用这个给定的功能,就转移到这个独立的程序段,待这个独立的程序段指令序列执行完后,又返回到原来位置继续运行程序。我们把这个相对独。</p><p>10、第六章 子程序设计,河南师范大学计算机与信息技术学院,2,2019/2/6,本章内容提要,河南师范大学计算机与信息技术学院,3,2019/2/6,6.1 子程序设计,河南师范大学计算机与信息技术学院,4,2019/2/6,子程序,把功能相对独立的程序段单独编写和调试,作为一个相对独立的模块供程序使用,就形成子程序。,子程序可以实现源程序的模块化,可简化源程序结构,可以提高编程效率。,子程序设计要利用过程定义伪指。,参数传递是子程序设计的重点和难点,子程序可以嵌套; 一定条件下,还可以递归和重入,河南师范大学计算机与信息技术学院,5,2019/2/6,模块化。</p><p>11、第五章,基本汇编语言程序设计,第5章基本汇编语言程序设计,5.1 汇编语言程序的设计步骤 5.2 顺序结构的程序设计 5.3 分支结构的程序设计 5.4 循环结构的程序设计 5.5 子程序设计,第5章基本汇编语言程序设计,5.1 汇编语言程序的设计步骤 5.2 顺序结构的程序设计 5.3 分支结构的程序设计 5.4 循环结构的程序设计 5.5 子程序设计,5.1 汇编语言程序的设计步骤,汇编语言程序设计的基本步骤 程序的基本结构,5.1 汇编语言程序的设计步骤,一个良好的程序应该满足以下要求: (1)程序要结构化,简明、可读性好,便于调试。 (2)执行速度快,程序代。</p><p>12、汇编语言程序设计,齐志儒 高福祥 主编 东北大学出版社,第四章 汇编语言,4.1 汇编语句格式 4.2 汇编语言中数据的表示方法 4.3 运算符号 4.4 伪指令 4.5 汇编语言的上机过程,4.1 汇编语句格式,4.1.1 字符集 4.1.2 汇编语句格式,Microsoft的宏汇编语言由下列字符组成: (1)英文字母:AZ和az。 (2)数字字符:09。 (3)算术运算符:+,-,*,/。 (4)关系运算符:。 (5)分隔符:,:,;,(,), (空格),TAB(制表符)。 (6)控制符:CR(回车),LF(换行),FF(换页)。 (7)其它字符:,_(下划线),.,%,!。,4.1.1 字符集,DSEG SEGMENT ;数据段开始 DATAl DB 13H,26H 。</p><p>13、第四章汇编语言及汇编语言程序设计,教学目的与要求:,4.1概述,机器语言用二进制数来表示指令和数据。如:B80200,如:MOVAX,2助记符反映指令的功能和主要特征,便于人们理解和记忆。,汇编语言用助记符,符号地址以及标号等符号书写的程序。,操作数是指令操作的对象,根据操作数的来源不同可分为寄存器操作数(寄存器名表示),立即数(十进制或16进制数表示)和存储器操作数(涉及存储器的地址)和转移类。</p><p>14、4 汇编语言及汇编语言程序设计,4.1程序设计概述4.1.1 汇编语言程序设计的步骤与方法汇编语言程序设计的步骤如下:1)确定方案和计算方法。2)了解应用系统的硬件配置、性能指标。3)建立系统数学模型,确定控制算法和操作步骤。4)画程序流程图。程序流程图表示程序结构和程序功能。5)编制源程序。合理分配存储器单元和了解I/O接口地址。按功能设计程序,明确各程序之间的相互关系。用注释行说明程序,便于阅读、修改和调试。,4.1.2 常用伪指令所谓伪指令就是汇编控制指令,仅提供汇编信息,没有指令代码。常用伪指令及其功能:(1) ORG。</p><p>15、第二章汇编语言程序设计 80X86的寻址方式80X86的指令系统汇编语言程序格式汇编语言程序设计方法 一条指令就是完成一种操作命令 它由操作码和操作数构成 用二进制数表示 操作码表示计算机所要执行的操作 操作数表示操作的对象 也就是指令执行操作的过程中所需要的数据或地址 一条指令一定包含这样的信息 是做什么操作 操作数从哪里来 一般说来 操作数可以跟随在指令的操作码之后 称为立即数 也可以存放在C。</p><p>16、大连理工大学软件学院 邱铁 办公楼409 Tel:87571521 E_mail: 参考教材:ARM嵌入式系统结构与编程 清华大学出版社2009年3月出版,ARM嵌入式系统结构与编程,第7章汇编语言程序设计,本章主要介绍ARM汇编语言程序设计规范,以及在汇编语言程序设计中所要注意的问题,最后以大量的实例说明汇编语言程序设计方法。,内容提要,71 ARM编译环境下汇编语句 72 GNU环境下汇编语句。</p>