微型计算机原理与常用接口技术 hina 54 cat 第三章 汇编语言程序设计
china_54@tom.com 第三章 汇编语言程序设计
微型计算机原理与常用接口技术cms4 a 知识点: 汇编语言的基本元素 伪指令 汇编程序结构 ●DOS系统调用和BIOS功能调用 程序设计方法
china_54@tom.com 知识点: l 汇编语言的基本元素 l 伪指令 l 汇编程序结构 l DOS系统调用和BIOS功能调用 l 程序设计方法
微型计算机原理与常用接口技术cms4 a 31汇编语言的基本元素 311汇编语言的语句格式 汇编语言编写的源程序是由多条汇编指令组成的 标识符 2指令助记符 3操作数 4.注解 312汇编语言的语句格式 1.算术运算符 2.逻辑运算符 3关系运算符 4.分析运算符 1)SEG运算符 2) OFFSET运算符
china_54@tom.com 3.1 汇编语言的基本元素 3.1.1 汇编语言的语句格式 汇编语言编写的源程序是由多条汇编指令组成的。 1.标识符 2.指令助记符 3.操作数 4.注解 3.1.1 汇编语言的语句格式 1.算术运算符 2.逻辑运算符 3.关系运算符 4.分析运算符 1)SEG运算符 2)OFFSET运算符 3.1.2 汇编语言的语句格式
微型计算机原理与常用接口技术 hina 54 at 3.TYPE运算符 4. LENGTH运算符 5.SIZE运算符 6综合运算符 3.13表达式 8086/8088CPU指令系统采用了变长的指令格式,不可能 用一个简单的规则来描述指令的编码格式 常数 2常量操作数 3存储器操作数 4.常量表达式 5地址表达式 3.1.4汇编语言程序汇编步骤
china_54@tom.com 3. TYPE运算符 4. LENGTH运算符 5. SIZE运算符 6.综合运算符 3.1.3 表达式 8086/8088 CPU指令系统采用了变长的指令格式,不可能 用一个简单的规则来描述指令的编码格式。 1.常数 2.常量操作数 3.存储器操作数 4.常量表达式 5.地址表达式 3.1.4 汇编语言程序汇编步骤
微型计算机原理与常用接口技术 hina 54 cat 32伪指令 321定义数据伪指令 322符号定义伪指令EQU、=、及 PURGE 323段定义伪指令 SEGMENT和ENDS 324设定段寄存器伪指令 ASSUME 325定义过程的伪指令PROC和ENDP 326宏指令 327ORG伪指令 328汇编结束伪指令END
china_54@tom.com 3.2 伪指令 3.2.1 定义数据伪指令 3.2.2 符号定义伪指令EQU、=、及PURGE 3.2.3 段定义伪指令SEGMENT和ENDS 3.2.4 设定段寄存器伪指令ASSUME 3.2.5 定义过程的伪指令PROC和ENDP 3.2.6 宏指令 3.2.7 ORG 伪指令 3.2.8 汇编结束伪指令END
微型计算机原理与常用接口技术 hina 54 at 33汇编语言程序结构 33.1EXE文件的编程格式 332COM文件的编程格式 汇编语言要求,COM文件的编程格式必须符合以下规定: 源程序只允许使用一个逻辑段,即代码段,不允许设置堆栈段 程序使用的数据,可以集中设置在代码段的开始或末尾。 ●在代码段偏移地址(有效地址)为100H的单元,必须是程序的启动 指令 代码段目标块小于64KB。 333EXE文件和COM文件的内存映像 磁盘上的EXE文件包括两部分:一部分为装入模块,另一部分为“重 定位信息
china_54@tom.com 3.3 汇编语言程序结构 3.3.1 EXE文件的编程格式 3.3.2 COM文件的编程格式 汇编语言要求,COM文件的编程格式必须符合以下规定: l 源程序只允许使用一个逻辑段,即代码段,不允许设置堆栈段。 l 程序使用的数据,可以集中设置在代码段的开始或末尾。 l 在代码段偏移地址(有效地址)为100H的单元,必须是程序的启动 指令。 l 代码段目标块小于64KB。 3.3.3 EXE文件和COM文件的内存映像 磁盘上的EXE文件包括两部分:一部分为装入模块,另一部分为“重 定位信息
微型计算机原理与常用接口技术cms4 a 334EXE文件和COM文件的内存映像 1命令行参数 DOS把可执行文件的文件名作为外部命令,在DOS提示符下键入文件 名之后,DOS就把相应的可执行文件调入内存执行。键入文件名的时候, 如果在文件名之后空一格再键入一串字符,这串字符就被称为命令行参数。 2未格式化的命令行参数 未格式化的命令行参数就是命令字之后从空格开始的原始字符串。 33.5返回DOS的其他方法 对于EXE文件和COM文件,返回DOS最常用的方法是调用INT2H 的4CH功能。除此之外: (1)对于COM文件还有以下3种方法可以返回DOS 33.6源程序堆栈的设置
china_54@tom.com 1.命令行参数 DOS把可执行文件的文件名作为外部命令,在DOS提示符下键入文件 名之后,DOS就把相应的可执行文件调入内存执行。键入文件名的时候, 如果在文件名之后空一格再键入一串字符,这串字符就被称为命令行参数。 2.未格式化的命令行参数 未格式化的命令行参数就是命令字之后从空格开始的原始字符串。 3.3.4 EXE文件和COM文件的内存映像 3.3.5 返回DOS的其他方法 3.3.6 源程序堆栈的设置 对于EXE文件和COM文件,返回DOS最常用的方法是调用INT 21H 的4CH功能。除此之外: (1)对于COM文件还有以下3种方法可以返回DOS
微型计算机原理与常用接口技术cms4 a 3.4DOS系统功能调用与BIOS功能调用 3.4.1DoS系统功能调用 342BIOS功能调用 343文本方式BIOS屏显功能调用 35汇编程序设计 入口 31简单程序设计 A成立否? 简单程序设计是没有分支和循环的直线运行程序 程序执行按照IP内容自动增加的顺序进行。 352分支程序设计 分支程序的基本思想是根据逻辑判断的结果来 形成程序的分支 出口 图3-1分支程序流
china_54@tom.com 3.4 DOS系统功能调用与BIOS功能调用 3.4.1 DOS系统功能调用 3.4.2 BIOS功能调用 3.4.3 文本方式BIOS屏显功能调用 3.5 汇编程序设计 3.5.1 简单程序设计 简单程序设计是没有分支和循环的直线运行程序, 程序执行按照IP内容自动增加的顺序进行。 3.5.2 分支程序设计 分支程序的基本思想是根据逻辑判断的结果来 形成程序的分支 . 图3-1 分支程序流
微型计算机原理与常用接口技术 hina 54 at 353循环程序设计 循环程序是经常遇到的程序结构, 个循环结构通常由以下几个部分组成: 循环初始化部分:一般要进行地址指 针、循环次数及某标志的设置,相关寄 初始化 初始化 存器的清零等操作,只有正确地进行了 初始化设置,循环程序才能正确运行, 工作部分 盾环控制 及时停止。 循环控制 循环体:是要求重复执行的程序段部 条件?Y「工作部分 分,对应于要求重复执行的操作。 条 循环控制部分:由该部分修改并判断 1) 控制循环的条件是否满足,以决定是否 继续循环 图3-3循环结构示意图 循环结束部分:如保存循环运行结果
china_54@tom.com 3.5.3 循环程序设计 循环程序是经常遇到的程序结构, 一个循环结构通常由以下几个部分组成: l 循环初始化部分:一般要进行地址指 针、循环次数及某标志的设置,相关寄 存器的清零等操作,只有正确地进行了 初始化设置,循环程序才能正确运行, 及时停止。 l 循环体:是要求重复执行的程序段部 分,对应于要求重复执行的操作。 l 循环控制部分:由该部分修改并判断 控制循环的条件是否满足,以决定是否 继续循环。 l 循环结束部分:如保存循环运行结果 等。 图3-3 循环结构示意图
微型计算机原理与常用接口技术 hina 54 3.5.4子程序设计 子程序是程序设计中经常使用的程序结构,通过把一些 固定的、经常使用的功能做成子程序的形式,可以使源程序 及目标程序大大缩短,提高程序设计的效率和可靠性 参数传递一般有三种方法实现 利用寄存器:这是一种最常见方法,把所需传递的参数直 接放在主程序的寄存器中传递给子程序 利用存储单元:这种参数传递方法,把所需传递的参数直 接放在子程序调用指令代码之后 利用堆栈:这种方法将参数压入堆栈,在子程序运行时从 堆栈中取参数
china_54@tom.com 子程序是程序设计中经常使用的程序结构,通过把一些 固定的、经常使用的功能做成子程序的形式,可以使源程序 及目标程序大大缩短,提高程序设计的效率和可靠性。 参数传递一般有三种方法实现: l 利用寄存器:这是一种最常见方法,把所需传递的参数直 接放在主程序的寄存器中传递给子程序。 l 利用存储单元:这种参数传递方法,把所需传递的参数直 接放在子程序调用指令代码之后。 l 利用堆栈:这种方法将参数压入堆栈,在子程序运行时从 堆栈中取参数。 3.5.4 子程序设计