第4章 伪指令与汇编语言源程序课件.ppt
文本预览下载声明
第4章 伪指令及汇编语言源程序结构 本章重点:1、汇编语言语句格式 2、伪指令 3、源程序4种常见的结构形式 4.1 汇编语言语句格式 4.1.1 语句种类 汇编语言语句分为2类: (1)指令语句:完成一定操作功能,能够翻译成机器代码的语句,也就是由第3章中介绍的指令所形成的语句。 (2)伪指令语句(也叫指示性语句):只是为汇编程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码的语句。 4.1.2 语句格式 指令语句和伪指令语句的格式是类似的,格式如下: [名字] 操作码 操作数 [;注释] 其中带方括号的项可以省略,注释以分号(;)开始。 ⑴ 执行性语句——由硬指令构成的语句,它通常对应一条机器指令,出现在程序的代码段中: 标号: 硬指令助记符 操作数,操作数 ;注释 ⑵ 说明性语句——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序: 名字 伪指令助记符 参数,参数,… ;注释 标号、名字与标识符 标号是反映硬指令位置(逻辑地址)的标识符,后跟一个冒号分隔 名字是反映伪指令位置(逻辑地址)和属性的标识符,后跟空格或制表符分隔,没有一个冒号 标识符一般最多由31个字母、数字及规定的特殊符号(如 _、$、?、@)组成,不能以数字开头。默认情况下,汇编程序不区别标识符中的字母大小写 一个程序中,每个标识符的定义是唯一的,还不能是汇编语言采用的保留字 操作码与操作数 操作码 操作码用来指明操作的性质或功能。指令中的助记符都是操作码。操作码与操作数之间用空格分开。 操作数 指令中的操作数用来指定参与操作的数据,对于一般指令,可以有1个或2个操作数,也可以没有操作数;对于伪指令和宏指令,可以有多个操作数。操作数多于1个时,操作数之间用逗号分开。 操作数可以是常数和表达式。 注释项 注释是语句的说明部分,用来说明一条指令或一段程序的功能,由分号(;)开始,适当的加些注释,可以增加程序的可读性,便于阅读、理解和修改程序。 汇编程序在翻译源程序时将跳过该部分,不对它们做任何处理注释部分不产生机器代码。 4.2 伪指令 4.2.1 符号定义伪指令 1、 等值伪指令EQU 格式:符号名 EQU 表达式 功能:给符号名定义一个值、别的符号名、表达式或助记符。 例: 给出如下符号定义 X1 EQU 25 ;常数 X2 EQU X1+12 ;表达式 X3 EQU [SI+2] ;存储单元 符号定义伪指令 2、 等号伪指令 = = 伪指令的格式与功能和EQU类似。不同的是,在同一个程序中 = 可以对一个符号重复定义,EQU不能对同一个符号重复定义。 Y1=7 Y1=128 的定义是正确的。 而 Y1 EQU 7 Y1 EQU 128 的定义是错误的。 符号定义伪指令 3.解除定义伪指令PURGE 格式:PURGE 符号1,符号2,…,符号n 功能:解除指定符号的定义,解除符号定义后,可以用EQU重新定义。 Y1 EQU 7 PURGE Y1 Y1 EQU 128 的定义是正确的。 4.2.2 数据定义伪指令 格式:[变量] 助记符 操作数 [;注释] 功能:为操作数分配存储单元,并用变量与存储单元相联系。 助记符 一个操作数占用空间 变量 DB 1个字节 字节变量 DW 2个字节(1个字) 字变量 DD 4个字节(双字) 双字变量 DF(386以上CPU)3字单元 三字变量 DQ 4字单元 四字变量。 DT 10个字节单元 十字节变量 使用DT助记符时,对于10进制操作数,必须给出后缀D,没有后缀的默认为压缩BCD码。 操作数是常数(代表数据) 例4-3 操作数是数据的定义形式。 DATAB DB 18H,-1,30 ;每个数占用一个字节单元 DATAW DW 18H,2A45H ;每个数占用一个字单元 DATAD DD 18H,2F3A124BH;每个数占用一个双字单元 在内存中的存储情况 如图4.1所示。 说明: (1)操作数可以用各种进制形式书写,汇编程序将其转换成相应的补码存入内存单元中。 (2)同样一个数(如18H),由于数据定义助记符的不同,所占用的内存空间是不一样的。 (3)数据的高字节存放在高地址
显示全部