</div>
data ends</div>
字单元定义实例 字变量和字常量的定义: WNUM EQU 5678H ; 定义 WNUM 为常量 COUNT DW 20H ; 定义 COUNT 变量,假设在数据段的偏移地址为 10H 字变量和字常量的应用: MOV AX,[BX+SI+WNUM] ; MOV AX,[BX+SI+5678H] MOV AX,COUNT ; MOV AX,[0010H] MOV AX,[SI+COUNT] ; MOV AX,COUNT[SI] ; MOV AX,[SI+10H] LEA BX,COUNT ; LEA BX,[0010H] MOV BX,OFFSET COUNT ; MOV BX,0010H 字变量和字常量 定义双字单元伪指令 DD DD 伪指令用于分配一个或多个双字单元,并可以将它们初始化为指定值 初值表中每个数据是一个 32 位的双字量( Double Word ): 可以是有符号或无符号的 32 位整数 也可以用来表达 16 位段地址(高位字)和 16 位的偏移地址(低位字)的远指针 vardd DD 0,?,12345678h farpoint DD 00400078h 其他数据单元定义伪指令 定义 3 字伪指令 DF ——用于为一个或多个 6 字节变量分配空间及初始化 6 字节常用在 32 位 CPU 中表示一个 48 位远指针( 16 位段选择器 :32 位偏移地址) 定义 4 字伪指令 DQ ——用于为一个或多个 8 字节变量分配空间及初始化 8 字节变量可以表达一个 64 位整数 定义 10 字节伪指令 DT ——用于为一个或多个 10 字节变量分配空间及初始化 10 字节变量可以表达扩展精度浮点数 例 : 数据定义综合应用 .model small .stack .data bvar DB 16 wvar DW 4*3 dvar DD 4294967295 ; = 232 - 1 qvar DQ ? DB 1,2,3,4,5 tvar DT 2345 ; 定义了 BCD 码 2345H abc DB 'a','b','c' msg DB 'Hello',13,10,'$' bbuf DB 12 DUP('month') dbuf DD 25 DUP(?) CALLDOS EQU <int 21h> .code .startup mov bl,bvar mov ax,word ptr dvar[0] mov dx,word ptr dvar[2] ; 取双字到 DX.AX mov dx,offset msg mov ah,09h CALLDOS .exit 0 end 定位伪指令 定位伪指令控制数据的偏移地址 ORG 参数 ORG 伪指令是将当前偏移地址指针指向参数表达的偏移地址: ORG 100h ; 从 100h 处安排数据或程序 ORG $+10 ; 使偏移地址加 10 ,即跳过 10 个字节空间 MASM 中,符号“ $ ”表示当前偏移地址值 EVEN ; 从偶地址开始 ALIGN n ; 从 n 的整数倍地址开始 </div>
|