预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共96页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章汇编语言程序设计学习内容学习目标学习目标§5.1概述§5.2汇编语言语句一个汇编语言源程序是由若干逻辑段组织的;每个逻辑段由伪指令SEGMENT开始,以ENDS作结束;每个逻辑段均有段名,为调用程序的入口地址。 语句是汇编语言程序的基本组成单位。一个汇编语言源程序有3种基本语句: 指令语句 伪指令语句 宏指令语句(或称宏调用语句,在源程序的任意位置上使用宏指令可减少源程序中重复的编写工作)5.1概述数据段一.指令语句例1:以下为一条双操作数指令语句 LOP:MOVAX,0000H;将AX清零 标号指令助记符操作数注释 例2:以下为一条单操作数指令语句 INCCX;给CX加1二.伪指令语句例1:以下是一条伪指令语句 VB1DB12H;给变量VB1分配一个字 节单元,并赋初值12H。 段名伪指令符操作数注释 三.标识符 标识符是指令语句中标号和伪指令语句中的符号名的统称,其组成规则如下: (见教材P174页)指令语句与伪指令语句语句格式:名字操作符号操作数;注释 1.名字字段: (1)在指令语句中,名字字段为标号,为一任选字段,且一定是用“:”作为标号的结束符,是一条指令的符号地址通常是一个程序段或子程序的入口指令语句选用标号。 (2)在伪指令语句中,可为常量名、变量名、段名和过程名等,该字段是任选还是必需的,要视伪指令而定。名字字段后面用空格作结束符,不得使用冒号。 (3)组成名字的规则:P174页。 2.操作符字段: 是指令助记符,表示目标程序在运行时中央处理器CPU应完成的功能。 3.操作数字段: 是由操作符字段(指令助记符/伪指令)确定。 该字段与操作符字段之间用空格或制表符TAB为分界符。 各操作数之间用逗号或空格分隔。 4.注释字段: 本字段为任选字段,以分号作这字段的开始符,可由任意字符串表示。 是对某些程序段或指令加以注解,说明它们的功能及意义。§5.3汇编语言数据§5.3汇编语言数据§5.3.1符号定义语句<表达式/符号>:见教材以下各例题 (1)常数或数值表达式: 例:COUNTEQU15*2+10 (2)地址表达式: 例:ADDR1EQUDS:[BP] (3)变量名、标号或指令助记符 例:NMU1EQUCOUNT1; BEINGEQUSTART; BTODEQUDAA;2.等号伪指令: 格式: 符号=表达式/符号 功能:与EQU相同。 等号伪指令与等值伪指令之间的差异: (1)等号伪指令可以重新定义符号。 (2)等号伪指令可以为已定义的变量名或标号定义另一个别名,但不能为指令助记符定义另一个别名。例:§5.3.2数据定义语句§5.3.2数据定义语句数据定义语句的格式: 变量名表达式1,表达式2,…… 例:经过数据定义语句定义的变量,均有3个属性: (1)段属性(SEG):表示变量存放在哪个逻辑段中,且用这个逻辑段的段基值表示。 (2)偏移量属性(OFFSET):表示在逻辑段中离段起始单元(段基址)的距离(字节数)。 (3)类型属性(TYPE):表示变量的数据的大小(字节数据、字数据、双字数据),主要依据DB、DW、DD等伪指令来确定的。几种表达式: 数值表达式: 例: 2.?表达式:3.字符串表达式: (1)字符串必须用引号(单引号或双引号)括起来。 (2)字符串中各字符均是以ASCII码形式存放在相应存储单元中。 (3)DB、DW、DD中的字符串的表示形式和字符ASCII码的存储顺序的差异。具体见教材P177页,及图5—2。4.带DUP表达式: 变量名表达式1DUP(表达式2) 例:§5.3.3数据常数的应用: (1)在指令语句的源操作数中作立即数操作数。 例: (2)在指令语句的寻找存储器操作数的各种寻址方式中作位移量。 例: (3)在某些伪指令语句的操作数字段中,赋值数据。例:见教材P179二、寄存器操作数:三、存储器操作数:1.变量:2.标号: 定义:指令语句的名字字段上的名字,称为标号。是一条指令的符号地址。 标号常作为转移类指令的操作数,表示转移的目标地址。 标号的3个属性: (1)段属性(SEG):表示标号所在指令的逻辑段,且用该逻辑段的段基值表示。 (2)偏移量属性(OFFSET):表示标号所在指令距离起始单元之间的字节数。 (3)类型属性(TYPE):是作为段内转移不是段间转移的目标地址。有两种。§5.3.4运算符4.数值返回运算符:(2)TYPE运算符: TYPE运算符是用数字形式表示变量或标号的类型属性。 (3)LENGTH和SIZE运算符: 运算符仅加在变量名的前面,它返回的是数组变量的元素个数(LENGTH)和数组变量所占的总字节数(SIZE)。 运算规则: 变量是用重复操作符DUP定义的,则LENGTH的运算结果是外层DUP的给定值(