微机电子教程第四章汇编程序设计ppt培训课件

上传人:aa****6 文档编号:57218114 上传时间:2018-10-20 格式:PPT 页数:78 大小:259KB
返回 下载 相关 举报
微机电子教程第四章汇编程序设计ppt培训课件_第1页
第1页 / 共78页
微机电子教程第四章汇编程序设计ppt培训课件_第2页
第2页 / 共78页
微机电子教程第四章汇编程序设计ppt培训课件_第3页
第3页 / 共78页
微机电子教程第四章汇编程序设计ppt培训课件_第4页
第4页 / 共78页
微机电子教程第四章汇编程序设计ppt培训课件_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《微机电子教程第四章汇编程序设计ppt培训课件》由会员分享,可在线阅读,更多相关《微机电子教程第四章汇编程序设计ppt培训课件(78页珍藏版)》请在金锄头文库上搜索。

1、第四章 汇编语言程序设计,4.1 程序设计语言概述,机器语言:当指令和数据都用二进制代码表示时,计算机能够直接识别与执行,因而称之为机器语言。 1. 3种语言 高级语言:高级语言(如BASIC、C等)则是完全独立于机器的通用语言。但其效率低。汇编语言:符号化语言,用助记符写指令。主要特点地址符号化 。,用汇编语言编写程序能够直接利用硬件系统的特性(如寄存器、标志、中断系统等),直接对位、字节、字、寄存器或存储单元、I/O端口进行处理,同时也能直接使用CPU指令系统提供的各种寻址方式,编制出高质量的程序。,这样的程序占用内存空间少、执行速度快。,所以,汇编语言多用来编写计算机系统程序、实时通信程

2、序、实时控制程序等,也可被各种高级语言所嵌用。,2、几种汇编在IBM PC微机上流行的汇编程序是微软公司的小汇编(ASM) 和宏汇编(MASM)两种。(还有TASM、OPTASM)计算机中完成汇编任务的程序被称为汇编程序(ASSEMBLER),它可以:将汇编语言源程序翻译成机器语言程序能够根据用户要求自动分配存储区域(包括程序区、 数据区等);自动地把各种进制数转换成二进制数;把字符转换成ASCII码;计算表达式的值;自动对源程序进行检查,给出错误信息(如非法格式、 未定义的助记符、标号、漏掉操作数等)等,3、汇编语言程序上机处理过程,汇编语言上机过程D:EDIT ABC.asm D:MASM

3、 ABC;有语法错,回EDIT下改该程序 D:LINK ABC;有错,回在EDIT下改程序 D:ABC运行结果错,回EDIT下改程序或在DEBUG下调试,找原因。 D:DEBUG ABC.exe,4.2 汇编语言的程序结构与语句格式,4.2.1 汇编语言源程序的框架结构(书P141),一、源程序的结构特点1、由若干个逻辑段组成,各逻辑段都有一个段名,由段定义语 句(伪指令语句)来定义和说明。源程序中一般具有代码段、堆栈段、数据段和附加数据段。代码段是必不可少的。数据段或附加段用来在内存中建立一个适当容量的工作区用 以存放常数和变量,并作为算术运算或I/O接口传送数据的工作 区等。堆栈段则在内存

4、中建立一个堆栈区,以便在中断和子程序 (或过程)调用及各模块间传递参数时使用。,8086/8088/80286只允许同时使用4种类型的段:代码段(CS)、堆栈段(SS)、数据段(DS)和附加段(ES)。80386/80486和Pentium系列允许同时使用6种段,除以上4种段外,还可有FS和GS两个附加数据段。在8086/8088和实地址方式下,每个段的最大长度均为64KB;而在保护方式下,80286允许每个段的最大长度为16MB,80386/80486和Pentium系列允许4GB。在一个源程序中每种类型的段又可存在若干个,如几个数据段,2、在代码段起始处,用ASSUME说明各个段寄存器与逻

5、辑段的关 系,并在程序开始处设置段寄存器的初值(代码段CS除外)。,3、每段由若干语句行组成,每行只能写一条语句,允许续行。整 个源程序必须以END来标志执行的结束。在END后的标号START表 示程序中运行第一条指令的起始地址。,4、每条语句由4个字段构成。各字段间用空格分开。,5、每个源程序中必须含有返回DOS的指令语句,以便返回DOS继 续键入命令。如:标准序法。,二、源程序与PC DOS的接口汇编语言源程序经过汇编转变为目标程序,当用链接程序对 其作进行链接和定位时,操作系统完成:,1、为每个用户程序分配一个256字节的程序段前缀区(PSP), 主要存放用户程序信息。在PSP的开始处(

6、偏移地址0000H)安排一条INT 20H软中断指 令。该程序的功能是使系统返回到DOS管理状态。因此,用户在组 织程序时,必须使程序执行完后能够转去执行存放于PSP开始处的 INT 20H指令。 2、定位用户程序。 3、设置DS和ES的值,使之指向PSP的开始处,即PSP的首地址。 4、将CS设置为用户程序的段基址,IP为程序执行时的第一个地址 ,设置SS、SP。 5、运行用户程序。,保证用户程序执行完后返回DOS:第一种方法:标准序法:将用户程序中的主程序定义为FAR过程,其最后一条指令为RET;当程序执行到RET时,会将栈顶的两个字分别送IP、CS。在主程序的开始处将PSP所在段的段地址

7、DS(或ES)保存进栈, 然后再将一个全0的字(PSP的段内偏移地址)压入堆栈。这就是 程序结构中的以下三条指令: PUSH DS ;保护PSP段地址 MOV AX,0 ;保护偏移0地址 PUSH AX 当用户程序返回时,会返回到DOS,执行INT 21H 注:由于DS、ES由DOS已设置,所以在用户程序的开始处应重新设置 DS、ES。,第二种方法:非标准方法:不定义主程序为FAR过程并去掉标准序 部分,只在代码段结束之前(即CODE ENDS之前)增加两句: MOV AH,4CH INT 21H,4、2、2 汇编语言的语句,一、语句的种类与格式 1、语句的种类 指令语句:可执行语句,与CPU

8、指令系统的指令相对应,汇编程序为之产 生一一对应的机器代码。例:MOV AH,4CH,例:伪指令语句 MESSAGE DB THIS IS A SAMPLE PROGRAM.;定义变量MESSAGE在数据段DATA中的存放形式。汇编时,;汇编程序将MESSAGE定义为一个字节类型数据区的首地址,;并按字节存储字符串信息。, 伪指令语句:CPU不执行的语句,只是汇编时给汇编程序提供汇编信息,如 定义符号、分配存储单元、将程序分段等。它本身并不产生目标 代码,所以是指示性语句。, 宏指令语句:是以某个宏名字定义的一段指令序列。汇编时,凡有宏指令语句的地方都将用相应的指令序列的目标代码插入。宏指令语

9、句是一般性指令语句的扩展。, 标号和名字标号代表指令所在存储单元的符号地址。后跟冒号,在程序中 作为转移(JMP)、调用(CALL)和循环(LOOP)指令的转移目 标,与具体的指令地址相联系。伪指令语句的名字一般用于定义常量名、变量名、过程名、段 名等。标号和名字必须符合汇编语言对标识符的规定:,以字母开头,由字母(AZ或az,汇编程序不区分大小写)、数字(09)及部分特殊字符(?、$和下划线_等)组成的字符串表示,字符串长度不能超过31个。标识符不能是汇编语言中有特定意义的保留字,如:CPU的内部寄存器名AH、AL、AX等。, 助记符、定义符规定指令或伪指令的操作功能,是语句中唯一不可缺少的

10、部分。前缀仅可出现在指令助记符前。, 操作数指令语句中提供指令的操作对象、存放位置。伪指令语句中操作数的格式和含义随伪操作指令不同而不同。操作数可以是一个或2个或0个(INC BX,PUSH AX ;MOV AX,DATA ;RET,HLT,NOP,CLD), 注释以“ ;”开始,给以编程说明。,二、语句中的操作数,1、常量操作数在运行期间不变化的量:立即数、端口地址。常用有:2(B),10(D),8(Q),16(H) 的整型常量,字符串常量。凡数字在AF之间且在最高位,必须加前缀0字符串常量是用单引号括起来的一个或多个字符,其值为字符 的ASCII代码值 。例:A=41H AB=4142H,

11、2、Reg操作数操作数部分是寄存器名,如:AX、SI和DS等,3、存贮器操作数-有标号与变量两种。 标号:与指令地址相关联,或某个过程起点位置在代码段内相关联。 变量:存放在存贮单元中的值,变量常以变量名的形式出现在程序中。,在数据段或堆栈段中,是存放数据的存放单元的符号地址, 与各种寻址方式有关(存贮器操作数寻址方式),标号和变量都与存储器地址相关联,都具有以下三种属性: 段属性(SEGMENT)段基址,即标号或变量所在段的段地址 偏移量属性(OFFSET)段内偏移地址,即标号或变量所在的地址与所在段的段起始地址之差。 类型属性(TYPE)变量的类型是指变量存取单位的字节数大小类型有字节(B

12、YTE)、字(WORD)、双字(DWORD)、四字、十字节5种。标号的类型则指标号与使用它的指令之间的距离远近。当标号作为转移指令或调用指令的目标操作数时,若是段内的转移和调用,这个标号的类型属性为NEAR;若是段间的转移和调用,标号的类型属性为FAR。,4、表达式操作数表达式由各种操作数、运算符和操作符组成。 (1)汇编语言中表达式有两类 数值表达式:由数值常量、字符串常量或符号常量等与算术、逻辑或关系运算符连接而成。在汇编时产生一个数值。 地址表达式:由常量、变量、标号、寄存器(如BX、BP、SI、DI)的内容以及一些运算符组成。其值表示存储器地址,一般都是段内的偏移地址,因此它也具有段属

13、性、偏移量属性和类型属性。如ES:SI+4,(2)运算符和操作符 MASM宏汇编中有三种运算符(算术、逻辑和关系运算符)和两 种操作符(分析和合成操作符)。 如书P146表4-1所示。 运算符实现对操作数的相关运算,操作符则完成对操作数属性的 定义、调用和修改。,算术运算符算术运算符有、/和MOD等。它们都可用于数值表达式,运算结果是一个数值。在地址表达式中,对标号或变量只可以使用加、减运算符。经常使用的是“标号或变量常量”这种形式。且运算后仍为标号或变量,其类型及段基址属性不变,仅修改了偏移量属性。如,PLACE23是指PLACE字节单元后的第6个存储单元的地址。若PLACE与某存贮单元地址

14、相关,则PLACE+23仍与某存贮单元相关。,逻辑运算符实现操作数按位逻辑操作。 有AND、OR、XOR和NOT。只适用于数值表达式。 注:逻辑运算符和逻辑运算指令助记符在符号形式上是一样的,但两者的含义有本质差异。 作为运算符时,它们是在程序汇编时由汇编程序计算的,计算结结果充当指令的某一个操作数或构成操作数的部分,逻辑运算符的操作对象只能是整型常量。,关系运算符 关系运算符有EQ、NE、LT、GT、LE和GE。 关系运算符的两个操作数必须同是数值或同是一个段内的两个存储器地址。比较时若关系不成立(为假)则结果为“0”,若关系成立(为真)则结果为全“1”。结果值在汇编时获得。 例: MOV

15、BX,PORT LT 5汇编为:MOV BX,0FFFFH(条件成立)或 MOV BX,0000H (条件不成立),分析操作符(数值返回运算符) 分析操作符的运算对象是存储器操作数。它返回变量或标号的属性值。 合成操作符(修改属性运算符) 合成操作符作用于存储器操作数时可以改变它们的属性。,(3)运算符和操作符的优先权等级,4.3 汇编语言的伪指令语句,指示汇编,链接程序如何进行汇编,链接,影响目标代码生成,本身不产生目标代码。,一. 符号定义伪指令语句:给表达式赋予一种符号名,以便在程序中使用 1. EQU等值语句格式:符号名 EQU 表达式 例: PORT EQU 40H注:EQU语句不能

16、重新定义,即在同一源程序中,用EQU定 义过的符号不能赋予不同的值。,2. 符号语句=格式:符号名 表达式功能与EQU类似, 但可重新定义。例:EMP=60EMP=EMP+1EMP=123X4,二:数据定义伪指令用于定义变量,指定变量的类型和名称,并为变量分配内存单元。1数据定义语句的格式格式:变量名 数据定义符 操作数 ,操作数,操作数操作数是赋给变量的初值,多个相同类型的变量可在一条语句中定义。,经过定义的变量有3个属性:TYPE,SEGMENT,OFFSET若某个变量表示的是一个数组,则其类型属性为变量的单个元素所占用的字节数。,初始值也可以是表达式 如:IN_PORT DB PORT_VALOUT_PORT DB PORT_VAL+1 其中,PORT_VAL已由EQU语句赋了值。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号