汇編语言程序设计 第4章汇编语言与源程序结构 汇编语言源程序与汇编程序 汇编语言语句种类及其格式 ◆汇编语言数据与运算符 伪指令 源程序结构模式
汇编语言 程序设计 第4章 汇编语言与源程序结构 ◆ 汇编语言源程序与汇编程序 ◆ 汇编语言语句种类及其格式 ◆ 汇编语言数据与运算符 ◆ 伪指令 ◆ 源程序结构模式
汇編语言程序设计 4.1汇编语言源程序与汇编程序 1、汇編语言源程序 汇编语言源程序是用汇编语言编写的程序,苘称汇编语 言程序。汇編语言程序通过編辑程序在讣犷杋中建立汇编语 言源程序文件(ASM文件)。 汇編程序 将汇编语言源程序編译成目标程序的加工程序称为汇编 程序。这一加工尅程称为汇編。 汇编程序的作用就是把源程序文件(ASM文件)转换成用 二进制代码表示的目标程序文件(OBJ文件)。 汇编程序的主要功能有 ①检耷源程序。②测出源程序语法错误,并给出错误。 ③产生目标程序,并可给出列表文件④展开宏指令。 返回
汇编语言 程序设计 4.1 汇编语言源程序与汇编程序 1、汇编语言源程序 汇编语言源程序是用汇编语言编写的程序,简称汇编语 言程序。汇编语言程序通过编辑程序在计算机中建立汇编语 言源程序文件(ASM文件)。 2、汇编程序 将汇编语言源程序编译成目标程序的加工程序称为汇编 程序。这一加工过程称为汇编。 汇编程序的作用就是把源程序文件(ASM文件)转换成用 二进制代码表示的目标程序文件(OBJ文件)。 汇编程序的主要功能有: ① 检查源程序。② 测出源程序语法错误,并给出错误。 ③ 产生目标程序,并可给出列表文件 ④ 展开宏指令。 返回
汇編语言程序设计 4.2汇编语言语句种类及其格式 语旬是汇编语言源程序的基本组成单位。一个汇编语言 原徨序中有3种基本语旬:指令语旬、伪指令语旬和宏指令 语句。前两种是最常见、最基本的语句。指令语旬和伪指令 语旬不仅在程序中的功能不同,而且奥现其功能的方法和时 间也是不同的。 、指令语句 指令语句就是计犷机中指令系统的各亲指令,每条指令 语旬在汇编时都产生一个供CPU执行的机器目标代码。所以 这种语句又称为可执行语句。 计算机中每条指令语旬表示一种基本功能。这些基本功 能是在程序远行期间由计算机硬件來实现的。一条指令语句 由四个宇段组成。其一般格式如下 [标号:]指令助记符[搡作数][;注释]
汇编语言 程序设计 4.2 汇编语言语句种类及其格式 语句是汇编语言源程序的基本组成单位。一个汇编语言 源程序中有3种基本语句:指令语句、伪指令语句和宏指令 语句。前两种是最常见、最基本的语句。指令语句和伪指令 语句不仅在程序中的功能不同,而且实现其功能的方法和时 间也是不同的。 1、指令语句 指令语句就是计算机中指令系统的各条指令,每条指令 语句在汇编时都产生一个供CPU执行的机器目标代码,所以 这种语句又称为可执行语句。 计算机中每条指令语句表示一种基本功能,这些基本功 能是在程序运行期间由计算机硬件来实现的。一条指令语句 由四个字段组成,其一般格式如下: [标号:] 指令助记符 [操作数] [;注释]
汇編语言程序设计 (1)标号 标号是指令语旬的膂号地址,咆代表指令代码存放地扯 的第一个寧节地扯。 标号是指令语旬的可选项。通常在一个程序段或子程序 的入口指令语句选用标号,当程序卿要转入这个程序段或 调用子程序时,就可直接引用这橛号。标号通常在代码段 中定义。后面跟冒号“:”,它经常在转移指令或CALL指 令中引用用以衰示转向地址,引用时标号后不跟冒号, (2)指令助记符 指令助记符为指令语旬的核心,是不可省略的主要郃功, 如MV、ADD、XOR、RCL等等,它表示指令语句要求CPU完成 的具体操作
汇编语言 程序设计 (1)标号 标号是指令语句的符号地址,它代表指令代码存放地址 的第一个字节地址。 标号是指令语句的可选项,通常在一个程序段或子程序 的入口指令语句选用标号,当程序需要转入这个程序段或 调用子程序时,就可直接引用这标号。标号通常在代码段 中定义,后面跟冒号“:” ,它经常在转移指令或CALL指 令中引用,用以表示转向地址,引用时标号后不跟冒号。 (2)指令助记符 指令助记符为指令语句的核心,是不可省略的主要部分, 如MOV、ADD、XOR、RCL等等,它表示指令语句要求CPU完成 的具体操作
汇編语言程序设计 (3)操作数 操作数表示指令助记符的操作对泉,不同的指令所带 的操作数不同,有一个操作数的指令(如IN、NOT等), 有二个操作数的指令(如ADD、XOR-),无操作数指令 (如CLC、STD等)。 若淠要操作数,则每一个操作数要依据寻址方式来表示。 操作数可以是常数、岢存器、标号、变量和表达式。 (4)注释 注释是用来说明一段程序或一条或多条指令的功能,它 是可选项,注释均以分号“;”开始,它可占一行或多行。 注释还通常用于调试程序。注释是语句的非执行部分,因 此,它不出现在机器目标代码中,也不影响指令语旬的功 能
汇编语言 程序设计 (3)操作数 操作数表示指令助记符的操作对象,不同的指令所带 的操作数不同,有一个操作数的指令(如INC、NOT等), 有二个操作数的指令(如ADD、XOR等),无操作数指令 (如CLC、STD等)。 若需要操作数,则每一个操作数要依据寻址方式来表示。 操作数可以是常数、寄存器、标号、变量和表达式。 (4) 注释 注释是用来说明一段程序或一条或多条指令的功能,它 是可选项,注释均以分号“;”开始,它可占一行或多行。 注释还通常用于调试程序。注释是语句的非执行部分,因 此,它不出现在机器目标代码中,也不影响指令语句的功 能
汇編语言程序设计 2、伪指令语旬 伪指令语旬指示汇编程序在汇编源程序时完成基些工作 比如完成数据定义、分配存储区、指示程序结束善。 伪指令属于汇编控制命令。它所指示的操作是由汇编程 序在汇編源程序时完成的,在汇编时,它不产生目标代码, 在将源程序汇编成目标程序后,它就不复存在了。 缭上所迷可知,伪指令语旬与指令语旬的主要区别是 伪指令语旬经汇编后不产生机器目标代码。而指令语旬经 汇编后将产生相应的机器目标代码:伪指令语所指示的 操作是在程序汇编时完威的,而指令语勺的操作必须在程 序拯行时才能完成。一条伪指令语旬也由四个字段组成, 其一般格式如下 [符号名]伪指令待操作数[;注释]
汇编语言 程序设计 2、伪指令语句 伪指令语句指示汇编程序在汇编源程序时完成某些工作, 比如完成数据定义、分配存储区、指示程序结束等。 伪指令属于汇编控制命令,它所指示的操作是由汇编程 序在汇编源程序时完成的,在汇编时,它不产生目标代码, 在将源程序汇编成目标程序后,它就不复存在了。 综上所述可知,伪指令语句与指令语句的主要区别是: 伪指令语句经汇编后不产生机器目标代码,而指令语句经 汇编后将产生相应的机器目标代码;伪指令语句所指示的 操作是在程序汇编时完成的,而指令语句的操作必须在程 序运行时才能完成。一条伪指令语句也由四个字段组成, 其一般格式如下: [符号名] 伪指令符 操作数 [;注释]
汇編语言程序设计 (1)号名 符号名在伪指令语旬中是一个可选项,巷号名后面没有 冒号,符号名可以是常量名、变量名、过程名等。 (2)伪指令符 伪指令符指定汇编程序要完成的具体操作。它是伪指令语 句的核心部分,如数据定义伪指令D、DW、D,段定义伪指 令 SEGMENT,定义过程伪指令PR0C等等。 (3)操作数 伪指令中的操作数可以是常数、字符串、变量、表达式, 其个数由具体的伪指令决定,各个操作数之间用“,”分隔。 (4)注释 伪指令语旬的注释也是可选项,要时必须以“;”开始
汇编语言 程序设计 (1)符号名 符号名在伪指令语句中是一个可选项,符号名后面没有 冒号,符号名可以是常量名、变量名、过程名等。 (2)伪指令符 伪指令符指定汇编程序要完成的具体操作,它是伪指令语 句的核心部分,如数据定义伪指令DB、DW、DD,段定义伪指 令SEGMENT,定义过程伪指令PROC等等。 (3)操作数 伪指令中的操作数可以是常数、字符串、变量、表达式, 其个数由具体的伪指令决定,各个操作数之间用“ , ”分隔。 (4)注释 伪指令语句的注释也是可选项,需要时必须以“;”开始
汇編语言程序设计 3、标识符 指令语旬中的标号和伪指令语旬中的符号名統称为标识 符。它仉由若干字挎组成,标识符的组成规则如下 (1)一个标识符由1-3个字符组成。 (2)组成标识符的字爸可以是字母(A-Z或a-z)、数 字(0-9)、专用字符(“?”、“·”、“@”、“$” “下划线”)。 (3)除数字外,上述其余字待均可作为标识符的首字符, “·”只能作为标识符的首字符。 (4)不能使用属于系统的专用保留字
汇编语言 程序设计 3、标识符 指令语句中的标号和伪指令语句中的符号名统称为标识 符。它们由若干字符组成,标识符的组成规则如下: (1)一个标识符由1--3个字符组成。 (2)组成标识符的字符可以是字母(A--Z或a--z)、数 字(0--9)、专用字符(“?” 、 “·” 、 “@” 、 “$” 、 “下划线_”)。 (3)除数字外,上述其余字符均可作为标识符的首字符, “·”只能作为标识符的首字符。 (4)不能使用属于系统的专用保留字。 返回
汇編语言程序设计 4.3汇绵语言数据与远η符 汇编语言的指令语旬和伪指令语旬操作数一般为常量 变量、标号、表达式。 1、常量 常量是没有任何属性的纯教值,它的值在汇编期间已能 完全确定,且在程序运行中也不会发生变化。常量分为数值 常量、字符串常量和将号常量,它宝要用于指令语旬中的立 即数或伪指令语勺中给变量赋初值等 (1)数值常量 數值常量分为蓬数和实数。 例如:11100011B,45693,0FF2AH,356703Q都是正 确的整数形式 又如:543.567,-45.23,1.2E-2,-45.4E+9都是正 确的实数形式
汇编语言 程序设计 4.3 汇编语言数据与运算符 汇编语言的指令语句和伪指令语句操作数一般为常量、 变量、标号、表达式。 1、常量 常量是没有任何属性的纯数值,它的值在汇编期间已能 完全确定,且在程序运行中也不会发生变化。常量分为数值 常量、字符串常量和符号常量,它主要用于指令语句中的立 即数或伪指令语句中给变量赋初值等。 (1)数值常量 数值常量分为整数和实数。 例如:11100011B ,45693 ,0FF2AH ,356703Q都是正 确的整数形式, 又如:543.567,﹣45.23,1.2E﹣2,﹣45.4E﹢9都是正 确的实数形式
汇編语言程序设计 (2)字符串常量 字符串常量是用单引号括起来的一个字符或多个字符。 字符串常量以单引号中各宇符的 ASCII码形式存储在内存 中,如H,在内存中就是41H,412就是31H,32H。使用 可在单引号内直接写享序列。如12AB’也可写字 符的 Ascii码,ASCI码之间用逗号分隔(此时不要用单 引号),如31H,32H,41H,42H表示字符串12AB’。 (3)符号常量 符号常量是指用EJU伪指令或赋值语旬“=”定义过的符 号名,可作操作数项或在表达式中使用
汇编语言 程序设计 (2)字符串常量 字符串常量是用单引号括起来的一个字符或多个字符。 字符串常量以单引号中各字符的ASCII码形式存储在内存 中,如‘H’ ,在内存中就是41H, ‘12’就是31H,32H。使用 时可在单引号内直接写字符序列,如‘12AB’ ,也可写字 符的ASCII码,ASCII码之间用逗号分隔(此时不需要用单 引号),如31H,32H,41H,42H表示字符串‘12AB’ 。 (3)符号常量 符号常量是指用EQU伪指令或赋值语句“=”定义过的符 号名,可作操作数项或在表达式中使用