汇编语言程序设计教学PPT课件.ppt

* 4.2 伪指令 数据定义伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 过程定义伪指令 宏命令伪指令 模块定义与连接伪指令 不汇编成机器指令。常用的伪指令有: * 4.2.1 数据定义伪指令 用于定义变量的类型,给变量赋初值或给变量分配存储空间。 1.格式 [变量名] 数据定义伪指令 操作数 ;注释 变量名为可选项,后面不加冒号。 伪指令助记符有如下几种: DB 定义变量为字节类型。每个操作数占1个字节。也常用来定义字符串。 DW 定义变量为字类型。每个操作数占2个字节。在内存中存放时,低字节在低地址,高字节在高地址。 DD 定义变量为双字类型。每个操作数占4个字节。 DQ 定义变量为四字类型。 DT 定义变量为十字节类型。DT伪操作后面的每个操作数都为10个字节的压缩BCD码数。 2.操作数 操作数可以是常数、表达式或字符串。 可定义多个数据元素,但每个数据元素的值不能超过由伪操作所定义的数据类型限定的范围。 字符和字符串都必须放在单引号中。 超过两个字符的字符串只能用于DB伪指令。 “?”:给变量保留相应的存储单元,而不赋予变量确定的值。 例:ABC DB 0,1,2,3,4,’OK’,’$’ RSV DW ?,?,?,?,?,?,?,? 3.重复操作符DUP 重复的数据可以使用重复操作符DUP,格式: [变量名] 数据定义伪指令 n DUP(初值[,初值…]) 如上面RSV亦可写成: RSV DW 8 DUP(?) 重复操作符主要应用于需要预留存储区域且对其初始值不关心的场合,如定义堆栈区、为数据定义缓冲区等。 画图表示下列变量在内存中的存放顺序 VAR1 DB 11H,‘HELLO!’ VAR2 DW 12H,3344H VAR3 DD 1234H VAR4 DW 2 DUP(88H) VAR5 DB 2 DUP(56H,78H) * 4.2.2 符号定义伪指令 把一个表达式用一个符号表示,以后凡出现该表达式的地方都可用这个符号表示。 类似于C语言中的#define。 格式:名字 EQU 表达式 表达式可以是一个常数、符号、数值表达式、地址表达式等。 举例 CR EQU 0DH TEN EQU 0AH VAR EQU TEN*2+1024 ADR EQU ES:[BP+DI+5] 在程序段中应用以上定义 MOV AL,TEN CMP AL,TEN GOTO WORD PTR ADR 符号定义伪指令有两种:EQU,= ①用EQU定义的符号未清除前,不能重新定义。 ②用“=”定义的符号可在任何时候进行重定义 ③二者均不占用存储空间,仅是给符号赋值。 * 例1: DATA_B DB 10,5,10H DATA_W DW 100H,-4 DATA_D DD 0FFFBH 试画出汇编后的内存分配图 05H 10H 00H 01H FCH FFH FBH FFH 00H 00H 0AH DATA_B DATA_W DATA_D 10 5 10H 100H -4 0FFFBH * 例: TABLE DB 10 DUP(?) DATA1 DB ‘ABCD’,66H 试画出汇编后的内存分配图 * 举例 例题1:已知数据变量定义: DATA DB 11H,33H NUM DW 100*5+88 SUM DQ 11223344556677H STR DB ‘HELLO!’ 试画出汇编后的内存分配图 * 例题2:已知数据段定义: DATA SEGMENT DBYTE DB 12H,34H DWORD DW 1234H DDWORD DD DBYS DB ‘AB’ DATA ENDS 试画出汇编后的内存分配图 * 例题3:已知数据变量定义: DATA1 DB 20 DUP(?) DATA2 DW ? DATA3 DB 20 DUP(30H) 试画出汇编后的内存分配图 * 作业 第4章习题(P192) 4.2、4.7、4.12、4.15 * 第4章 汇编语言程序设计 机器语言 汇编语言 高级语言 面向机器 的语言 * 机器语言——用二进制数表示指令和数据。计算机唯一能够直接理解和执行的语言。 优点:执行速度快,占用内存少。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档