汇编语言第4章汇编语言语法及其程序格式.ppt
文本预览下载声明
第4章 汇编语言语法及其程序格式 4.1 汇编语言语句格式 4.2 伪指令 4.3 汇编语言源程序结构 4.4 汇编语言程序的上机过程 4.5 动态调试程序DEBUG 习题4 4.1 汇编语言语句格式 4.1.1 语句种类 【例4-1】 先给出一个完整的汇编语言源程序,该程序的功能是完成两个字节数据相加。 DATA SEGMENT ;段定义开始(DATA段) BUF1 DB 34H ;第1个加数 BUF2 DB 2AH ;第2个加数 SUM DB ? ;准备用来存放和数的单元 DATA ENDS ;段定义结束(DATA段) CODE SEGMENT ;段定义开始(CODE段) ASSUME CS:CODE,DS:DATA ;规定DATA、CODE分别为数据段和代码段 START: MOV AX,DATA MOV DS,AX ;给数据段寄存器DS赋值 MOV AL,BUF1 ;取第1个加数 ADD AL,BUF2 ;和第2个加数相加 MOV SUM,AL ;存放结果 MOV AH,4CH ;赋功能号 INT 21H ;返回DOS状态 CODE ENDS ;段定义结束(CODE段) END START ;整个源程序结束 从上面这个例子可以看出,汇编语言源程序由若干个语句组成,语句分为如下两类: 1) 指令语句 指令语句即由8086/8088提供的指令形成的语句,它能够被翻译成机器代码,并完成一定操作功能。 2) 伪指令语句 伪指令语句也叫指示性语句,它只是为汇编程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码。 程序中的语句 BUF1 DB 34H BUF2 DB 2AH SUM DB ? 就是伪指令语句,其功能是在内存中开辟三个名字分别为BUF1、BUF2和SUM的字节单元。前两个单元的初值分别为34H和2AH,SUM仅指定一个字节单元,不定义确定的初值。 实际上,汇编语言源程序中还可出现宏指令语句。宏指令语句就是由若干条指令语句形成的语句体。一条宏指令语句的功能相当于若干条指令语句的功能。 4.1.2 语句格式 指令语句和伪指令语句的格式是类似的,格式如下: [名字] 操作码 操作数 [;注释] 其中带方括号的项可以省略,注释内容以分号(;)引导。 1. 名字 1) 名字的定义规则 名字就是由用户按一定规则定义的标识符,可由英文字母(A~Z,a~z),数字(0~9)和特殊符号(?、@、_)等组成。 名字的定义要满足如下规则: (1) 数字不能作为名字的第一个符号; (2) 单独的问号(?)不能作为名字; (3) 一个名字的最大有效长度为31,超过31的部分计算机不再识别; (4) 汇编语言中有特定含义的保留字,如操作码、寄存器名等,不能作为名字使用。 为了便于记忆,名字的定义最好能够见名知义,如用BUFFER表示缓冲区,SUM表示累加和等。 2) 名字的主要形式 名字有标号和变量两种主要形式。 (1) 标号在代码段中定义,后面跟着冒号。标号也可以用LABEL或EQU伪指令来定义。此外,标号还可以作为过程名定义,由于过程由伪指令定义,所以过程名不需冒号说明。标号经常在转移指令或CALL指令的操作数字段出现,用以表示转向地址。 标号有三种属性:段、偏移和类型属性。 段属性:定义标号的段起始地址,此值必须在一个段寄存器中,而标号的段则总是在CS寄存器中。 偏移属性:标号的偏移地址是从段起始地址到定义标号的位置之间的字节数。对于16位段是16位无符号数;对于32位段则是32位
显示全部