经典汇编语言教程:6.4.3 简化段段名的引用

6.4.3 简化段段名的引用

当使用简化的段定义时,一般情况下,程序员可以不知道这些段的段名、段地址堆齐类型和组合类型等。但当把简化定义的段和标准定义的段混合使用时,就需要知道简化定义段的基本属性。表6.3是在小模式下段的基本属性对应表。

表6.3小模式下简化段定义的缺省属性表

伪指令

缺省段名

对齐类型

组合类型

类别

段组名

.CODE

_TEXT

WORD

PUBLIC

'CODE'

.FARDATA

FAR_DATA

PARA

NONE

'FAR_DATA'

.FARDATA?

FAR_BSS

PARA

NONE

'FAR_BSS'

.STACK

STACK

PARA

STACK

'STACK'

DGROUP

.DATA

DATA

WORD

PUBLIC

'DATA'

DGROUP

.DATA?

BSS

WORD

PUBLIC

'BSS'

DGROUP

.CONST

CONST

WORD

PUBLIC

'CONST'

DGROUP

在其它存储模型下,由伪指令".CODE"说明的代码段段名在"_TEXT"之前还要加上其模块名(源程序名)。假设,某模块名为ABC,则其缺省的代码段段名就为ABC_TEXT。因此,在这种情况下,程序的模块名或源程序名不要以数字开头。

例6.15 简化段定义的方法

.MODEL  SMALL
.STACK  128
.DATA
MSGDB "Simplified Segment Directives.$"
.CODE
MOV AX, @DATA;取数据段的段值
MOVDS, AX;把给段寄存器DS赋值
MOVDX, offset MSG
MOVAH, 9H
INT21h
MOVAX, 4C00H
INT21h
END

另外,在汇编程序MASM中,还提供了二组简化的代码伪指令:.STARTUP和.EXIT。

◆、.STARTUP——在代码段的开始,用于自动初始化寄存器DS、SS和SP;
◆、.EXIT——用于结束程序的运行,它等价于下列二条语句:

MOV AH, 4CH
INT 21h

当使用汇编程序TASM时,以上二条伪指令分别改为:STARTUPCODE和EXITCODE。假设使用汇编程序MASM,那么,例6.15可改写成例6.16的形式。

例6.16

.MODEL  SMALL
.STACK  128
.DATA
MSGDB "Simplified Segment Directives.$"
.CODE
.STARTUP                            ;自动初始化寄存器DS、SS和SP
MOVDX, offset MSG
MOVAH, 9H
INT21h
.EXIT
END

上页:上一课 下页:下一课

经典汇编语言教程·相关目录

第1章 汇编语言的由来,数据类型第2章 CPU资源和存储器
第3章 操作数的寻址方式第4章 标识符和表达式
第5章 微机CPU的指令系统第6章 程序的基本结构
第7章 子程序和库第8章 输入输出和中断
第9章 宏第10章 应用程序设计
第11章 数值运算协处理器第12章 汇编语言和C语言
汇编语言重要附录Windows API函数大全
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号