4.3基本伪指令 2.段定义伪指令 段定义由 SEGMENT与ENDS伪指令实现,基本形式如下: 段名 SEGMENT STACK USE16 <语句序列> 段名 ENDS 其中, STACK仅用于堆栈段。USE16指出使用16位段。 在实模式下,只能使用16位段,而32位段只能用于保护模式程序。 在实模式下,如果要使用32位指令,还必须在段定义时给出USE16。 段名作为操作数出现在指令中时,MASM将其视为立即数,表示段地址 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 4.3 基本伪指令 2. 段定义伪指令 段定义由SEGMENT与ENDS伪指令实现,基本形式如下: 段名 SEGMENT STACK USE16 <语句序列> 段名 ENDS 其中,STACK仅用于堆栈段。USE16指出使用16位段。 在实模式下,只能使用16位段,而32位段只能用于保护模式程序。 在实模式下,如果要使用32位指令,还必须在段定义时给出USE16。 段名作为操作数出现在指令中时,MASM将其视为立即数,表示段地址
4.3基本伪指令 3.符号定义伪指令 基本形式: 符号名 EQU表达式 符号名 常数表达式 功能:给表达式指定一个等价的符号名。 说明 (1)=后的表达式只能是常数,对于字符或字符串,汇编时按整数处理。例如 COUNT 20 MOV CX, COUNT ;等价于 MOV CX,20 (2)EQU后的表达式可以是数值、字符串、寄存器名、指令助记符等。 (3)EOU不能重复定义,而=可重复定义,其作用域从定义点到重新定义之前。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 4.3 基本伪指令 3. 符号定义伪指令 基本形式: 符号名 EQU 表达式 符号名 = 常数表达式 功能:给表达式指定一个等价的符号名。 说明: (1)= 后的表达式只能是常数,对于字符或字符串,汇编时按整数处理。例如: COUNT = 20 MOV CX, COUNT ; 等价于MOV CX, 20 (2)EQU后的表达式可以是数值、字符串、寄存器名、指令助记符等。 (3)EQU不能重复定义,而 = 可重复定义,其作用域从定义点到重新定义之前
4.3基本伪指令 4.变量定义伪指令 变量定义伪指令用来为数据分配内存空间,并设置相应内存单元的初始值。 飛式 变量名变量定义符操作数,, ,操作数 其中,变量名是一个符号地址,表示其后操作数的首地址, 变量名为可选项,给出变量名只是为了按名存取其对应的内存单元。 变量定义符主要包括下列几种: ·DB( Define Byte):定义字节,后面的每个操作数占1个字节。 DW( Define Word):定义字,后面的每个操作数占1个字 DD( Define dword):定义双字,后面的每个操作数占2个字。 操作数可以是常数、用EOU或-定义的符号常量、表达式、?和DUP子句等。 其中,?表示只保留内存空间,未定义初始值。DUP子句的格式为 重复次数DUP(操作数 ,操作数) 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 4.3 基本伪指令 4. 变量定义伪指令 变量定义伪指令用来为数据分配内存空间,并设置相应内存单元的初始值。 形式: 变量名 变量定义符 操作数,,...,操作数 其中,变量名是一个符号地址,表示其后操作数的首地址, 变量名为可选项,给出变量名只是为了按名存取其对应的内存单元。 变量定义符主要包括下列几种: • DB(Define Byte):定义字节,后面的每个操作数占1个字节。 • DW(Define Word):定义字,后面的每个操作数占1个字。 • DD(Define Dword):定义双字,后面的每个操作数占2个字。 操作数可以是常数、用EQU或=定义的符号常量、表达式、?和DUP子句等。 其中,?表示只保留内存空间,未定义初始值。DUP子句的格式为: 重复次数 DUP (操作数,...,操作数)