汇编语言:第4章 汇编语言程序格式

举报
资源描述
汇编语言程序格式汇编语言程序格式本章结构本章结构4.3伪指令语句4.2汇编语言的表达式4.1汇编语言语句格式寻址方式寻址方式主要内容主要内容3、常用伪指令及操作符功能、以及参数的表达、变量的 定义,还有变量和标号的属性1、汇编语句的格式、源程序结构、汇编语言程序开发方法2、汇编语言中的数值表达式和地址表达式寻址方式寻址方式教学要求教学要求4、伪指令语句1、汇编语言源程序格式2、数据定义语句掌握3、段定义语句5、符号定义语句寻址方式寻址方式教学要求教学要求了解 汇编程序的开发过程,一些不常用的伪指令,如:地址计数器$、指定起始位置伪指令ORG、EVEN伪指令等。4.1汇编语言程序开发汇编语言程序开发 汇编语言程序的开发必须经过编写源程序、编译、连接和运行3个主要步骤,而编写汇编语言源程序要遵守汇编语言的语句格式和程序格式。4.1汇编语言程序开发汇编语言程序开发4.1.1 汇编语言语句格式汇编语言语句格式4.1.2 汇编语言程序格式汇编语言程序格式4.1.3 汇编语言程序开发过程汇编语言程序开发过程4.1汇编语言程序开发汇编语言程序开发用汇编语言编写的源程序是由许多语句(又称汇编指令)组成的。每个语句由14个部分组成,它们有两种格式:4.1.1 汇编语言语句格式汇编语言语句格式1l执行性语句由硬指令构成的语句,它通常对应一条机器指令:标号:指令助记符 操作数,操作数;注释2l说明性语句由伪指令构成的语句,它通常指示汇编程序如何汇编源程序 名字 伪指令助记符 参数,参数,;注释其中,用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,一行最多可有132个字符。4.1汇编语言程序开发汇编语言程序开发4.1.1 汇编语言语句格式汇编语言语句格式标示符 标号和名字是符合汇编语法的用户自定义的标识符。标识符是用来标识指令或某一存储单元地址,每个标识符的定义是唯一的。可由下列字符组成:l字母:字母:AZ,az;l数字:数字:09;l特殊字符:特殊字符:?、_、$。4.1汇编语言程序开发汇编语言程序开发4.1.1 汇编语言语句格式汇编语言语句格式标示符 数字不能作为标识符的第一个字符,而圆点仅能用做第一个字符。标识符最长为31个字符。当标识符后跟冒号时,表示是标号,它代表该行指令的起始地址;当标识符后不带冒号时,表示变量;伪指令前的标识符不加冒号。4.1汇编语言程序开发汇编语言程序开发4.1.1 汇编语言语句格式汇编语言语句格式指令助记符指令助记符l指令助记符表示不同操作的指令,可以是8088的指令助记符,也可以是伪指令。4.1汇编语言程序开发汇编语言程序开发4.1.1 汇编语言语句格式汇编语言语句格式 操作数操作数操作数是指令执行的对象。依指令的要求,可能有一个、两个或者没有。如:RET ;无操作数COUNT:INC CX ;一个操作数如果是伪指令,则可能有多个操作数(参数)。如:COST DB 3,4,5,6,7 ;5个操作数MOV AX,BP+4 ;第二个操作数为表达式4.1汇编语言程序开发汇编语言程序开发4.1.1 汇编语言语句格式汇编语言语句格式 注注 释释 该项可有可无,是为源程序所加的注释,用于提高程序的可读性。使用分号区分为注释语句。4.1汇编语言程序开发汇编语言程序开发4.1.2 汇编语言程序格式汇编语言程序格式 程序由一条一条语句(指令)构成,每条语句占一行。汇编语言程序中,语句可以分为3种:4.1汇编语言程序开发汇编语言程序开发4.1.2 汇编语言程序格式汇编语言程序格式1完整的汇编语言源程序由段组成。2需独立运行的程需独立运行的程序必须包含一个序必须包含一个代码段,并指示代码段,并指示程序执行的起始程序执行的起始点,一个程序只点,一个程序只有一个起始点。有一个起始点。3所有的可执行性所有的可执行性语句必须位于某语句必须位于某一个代码段内,一个代码段内,说明性语句可根说明性语句可根据需要位于任一据需要位于任一段内。段内。4通常,程序还需要一个堆栈段。汇编语言源程序的组成原则汇编语言源程序的组成原则 4.1汇编语言程序开发汇编语言程序开发4.1.2 汇编语言程序格式汇编语言程序格式 完整段定义格式完整段定义格式DATAREA SEGMENT;定义数据段;数据定义语句DATAREA ENDS;*PROGNAM SEGMENT;定义代码段;-MAIN PROC FAR ;主程序ASSUME CS:PROGNAM,DS:DATAREA START:;程序起始执行地址 ;为程序返回DOS设置堆栈值 PUSH DS ;入栈保存原DS段址 SUB AX,AX ;设置偏移地址为0 PUSH AX ;入栈保存偏移地址;置DS寄存器为当前数据段 MOV AX,DATAREA;DATAREA段地址 MOV DS,AX ;存入DS寄存器;主程序部分 RET ;返回 DOSMAIN ENDP ;主程序结束;-SUB1 PROC NEAR ;定义子程序;子程序部分SUB1 ENDP ;子程序结束;-PROGNAM ENDS ;代码段结束;*END START ;汇编结束4.1汇编语言程序开发汇编语言程序开发4.1.2 汇编语言程序格式汇编语言程序格式1汇编语言程序通常汇编语言程序通常由若干段组成,段由若干段组成,段由伪指令由伪指令SEGMENTSEGMENT与与ENDSENDS定义,各段定义,各段顺序任意,段的数顺序任意,段的数目按需要确定,原目按需要确定,原则上不受限制。则上不受限制。2段由若干语句组成,语句以指令为主体而构成。一条语句写在一行上,书写时语句的各部分应尽量对齐。3汇编语言程序中至少要有一个启动标号,作为程序开始执行时目标代码的入口地址。启动标号常用START、BEGIN、MAIN等命名。4为增加程序为增加程序的可读性,的可读性,可在汇编语可在汇编语言语句言语句“;”后加上注释。后加上注释。汇编语言源程序结构特点汇编语言源程序结构特点4.1汇编语言程序开发汇编语言程序开发4.1.2 汇编语言程序格式汇编语言程序格式 简化段定义格式简化段定义格式.MODEL SMALL;定义存储器模型.STACK 100H ;定义堆栈段.DATA ;定义数据段;数据定义语句.CODE ;定义代码段MAIN PROC FARSTART:MOV AX,DATA ;数据段地址 MOV DS,AX ;存入DS寄存器;主程序部分 MOV AX,4C00H INT 21H ;返回DOSMAIN ENDP ;主程序结束 END START ;汇编结束4.1汇编语言程序开发汇编语言程序开发4.1.3 汇编语言程序开发过程汇编语言程序开发过程 在计算机上建立并运行汇编语言程序的基本步骤是:编辑程序、汇编程序、连接程序、运行程序。4.1汇编语言程序开发汇编语言程序开发4.1.3 汇编语言程序开发过程汇编语言程序开发过程 汇编语言程序上机过程汇编语言程序上机过程 4.2汇编语言的表达式汇编语言的表达式 汇编语句中的数据(常数、变量、标号、地址)都可以用表达式给出,MASM汇编语言允许使用的表达式有两种:数值表达式和地址表达式。表达式的运算在汇编阶段由汇编程序进行运算并将结果当做操作数。4.2汇编语言的表达式汇编语言的表达式4.2.1 数值表达式数值表达式4.2.2 地址表达式地址表达式4.1汇编语言的表达式汇编语言的表达式4.2.1 数值表达式数值表达式数值表达式的常用运算符运算符运算符类类型型运算符号及运算符号及说说明明算术运算符+(正)、-(负)、+(加)、-(减)、*(乘)、/(除)、MOD(取余)、SHL(逻辑左移)、SHR(逻辑右移)逻辑运算符AND(与)、OR(或)、XOR(异或)、NOT(非)关系运算符EQ(相等)、NE(不相等)、GT(大于)、LT(小于)、GE(大于等于)、LE(小于等于)4.1汇编语言的表达式汇编语言的表达式4.2.1 数值表达式数值表达式常 量n 常量是指那些在将源程序翻译成目标程序期间已经有确定数值的量,直接写在汇编语言语句中,在程序的执行过程中,它不可能发生变化。n 常量主要用于伪指令语句中给变量赋初值,或者用做机器指令语句中的立即操作数,变址寻址和基址变址寻址中的位移量、比例因子等。n 通常用二进制、八进制、十进制或十六进制来书写常量。当数字的第一个字符是AF或af时,在字符前应添加一个数字0,以示和变量的区别,如10101011B、1234D、1234H、0abcdH、AB等都是常量。4.1汇编语言的表达式汇编语言的表达式4.2.1 数值表达式数值表达式 算术运算符如前表中所示。这些运算符和常量、括号可组成数值表达式 如120H LT 100H+3,21H LE 21H等。该表达式的计算结果规定如下:若关系不成立,则该数值表达式的计算结果为0;否则,其结果为全1。4.1汇编语言的表达式汇编语言的表达式 注意:注意:算术运算的运算对象和运算结果都必须是整数,除法运算的结果只取商,模除运算的结果只取余数。4.2.1 数值表达式数值表达式MOV AH,2+6 MOV CL,33/5MOV DL,23 MOD 5 MOV BL,00001010B SHL 4MOV AH,0110B SHR 5 等效于:MOV AH,08HMOV CL,06HMOV DL,03HMOV BL,10100000BMOV AH,0000B4.1汇编语言的表达式汇编语言的表达式4.2.1 数值表达式数值表达式逻辑运算符和表达式逻辑运算符和表达式 逻辑运算符如前表中所示。这些逻辑运算符和常量、括号也可组成数值表达式。如47H AND 0FH,NOT 56H。4.1汇编语言的表达式汇编语言的表达式【例例】指令中的逻辑运算指令中的逻辑运算MOV ALMOV AL,NOT 00110011B NOT 00110011B MOV BLMOV BL,11110000B AND 10111101B 11110000B AND 10111101B MOV AHMOV AH,10100000B OR 00000101B 10100000B OR 00000101B MOV BHMOV BH,10101011B XOR 10100100B10101011B XOR 10100100B 等效于:等效于:MOV ALMOV AL,11001100B11001100BMOV BLMOV BL,10110000B10110000BMOV AHMOV AH,10100101B10100101BMOV BHMOV BH,00001111B00001111B4.2.1 数值表达式数值表达式4.1汇编语言的表达式汇编语言的表达式 地址表达式是计算存储单元地址的表达式,它可由标号、变量名和由括号括起来的基址或变址寄存器组成。4.2.2 地址地址表达式表达式地址表达式的常用运算符运算符运算符类类型型运算符号及运算符号及说说明明分析运算符HIGH(高字节)、LOW(低字节)、SEG(段地址)、OFFSET(偏移量)、TYPE(标识符类型)、LENGTH(变量长度)、SIZE(变量容量)、WIDTH(记录/记录字段宽度)、MASK(记录/记录字段的屏蔽位)属性运算符PTR(符号地址)、段操作符、SHORT(短转向地址)、THIS(指定类型)4.1汇编语言的表达式汇编语言的表达式4.2.2 地址地址表达式表达式标号 标号是指在代码段内定义和使用的指令地址。标号是可有可无的,如果有标号,必须和后面的操作项以冒号分隔开来。标号常作为转移指令的操作数,确定程序转移的目标地址。标号的3个属性:(1)段属性(SEG)(2)偏移属性(OFFSET)(1)距离属性(DISTANCE)4.1汇编语言的表达式汇编语言的表达式4.2.2 地址地址表达式表达式变量 变量在除代码段以外的其他段中被定义,用来定义存放在存储器单元中的数据。经过定义的变量有3个属性:(1)段属性。定义变量所在段的起始地址(即段基址)。(2)偏移地址属性。表示变量所在的段内偏移地址。此值为一个16位无符号数,它代
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 中学教育 > 初中教育


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