上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
简化段定义伪指令
作者:未知 申领版权
2010年12月12日 共有 2054 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    简化段定义伪指令
    简化段定义伪指令在说明一个新段即将开始的同时,也说明了上一个段的结束。在本段定义结束时,也不必用伪指令“ENDS”来标识。
    具体的伪指令说明形式及其功能描述如下:
    1、代码段定义
    .CODE
    作用:说明其下面的内容是代码段中内容。
    2、堆栈段定义
    .STACK  [堆栈字节数]
    其中,“堆栈字节数”可以不写,其缺省值为1024B。
    3、数据段定义
    .DATA / .DATA? / .CONST
    作用:说明其下面的内容是数据段中的变量定义。
    在一个源程序中,可以有多个伪指令.DATA定义的数据段,这就好象在源程序中定义多个同段名的数据段一样。
    伪指令.DATA?说明下面是一个未初始化数据段的开始,伪指令.CONST说明下面是一个常数数据段的开始。这二条伪指令很少使用,除非在与高级语言编写的程序相结合时,为了遵守高级语言的某些约定,而需要特殊说明时才使用。
    汇编程序在处理简化的堆栈段和数据段定义时,它会自动地把伪指令.STACK、.DATA、.DATA?和.CONST所定义的段组合成一个段组。如果想定义一个独立的、不与其它段组合在一起的数据段的话,那么,就可选用下面的数据段定义方式。
    4、远程数据段定义
    .FARDATA  [段名] / .FARDATA?  [段名]
    其中:“段名”是可选项,如果不指定的话,则该段名就取其缺省段名。
    作用:说明一个独立的数据段。
    伪指令.FARDATA?说明下面是一个未初始化的、独立数据段的开始。通常情况下,很少使用该伪指令。
    
    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
    
 
    
MSG
    
DB  "Simplified Segment Directives.$"
    
.CODE
    
 
    
MOV 
    
AX, @DATA
    
;取数据段的段值
    
MOV
    
DS, AX
    
;把给段寄存器DS赋值
    
MOV
    
DX, offset MSG
    
MOV
    
AH, 9H
    
INT
    
21h
    
MOV
    
AX, 4C00H
    
INT
    
21h
    
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
    
 
    
MSG
    
DB  "Simplified Segment Directives.$"
    
.CODE
    
 
    
.STARTUP                                   ;自动初始化寄存器DS、SS和SP
    
MOV
    
DX, offset MSG
    
MOV
    
AH, 9H
    
INT
    
21h
    
.EXIT
    
END
    

 
    6.5 源程序的辅助说明伪指令
    除了以上一些使用率较高的伪指令外,还有一些使用频率不太高的其它伪指令。下面仅列举几个这样的伪指令。
    6.5.1 模块名定义伪指令NAME
    模块名定义伪指令NAME说明该源程序的模块名。该伪指令的一般格式如下:
    NAME  [模块名字符串]
    6.5.2 页面定义伪指令PAGE
    在源程序的开始,可用伪指令PAGE说明每页的最大行数、每行的字符数。该伪指令的一般格式为:
    PAGE  [[行数], 宽度]
    其中:“行数”的取值范围为[10, 255],“宽度”的取值范围为[60, 132]。
    如:伪指令“PAGE 60, 80”说明每页最多有60行,每行最多有80个字符。
    如果要在某指定行之后强行换页的话,那么,可在该行的下面书写不带操作数的伪指令PAGE。
    

 

相关新闻

什么是时间?
证券交易所定义、特征、功能
应收账款释义
高中化学基本概念
Win32汇编的环境和基础
Win32汇编教程五-菜单和加速键的使用
win32汇编教程四-编写一个简单的窗口
Win32汇编教程三
Win32汇编程序的结构和语法
Win32汇编的环境和基础 Win32汇编教程之一

您可能对这些感兴趣  

干货分享|10本最受国外孩子喜爱的英文词典——上
从孩子的表现看父母的缺点!请家长对号入座,看看你是哪一类?
20条制作PPT的视觉原则
培训简史:培训者必知的历史轨迹
广田丰管理培训生人才培养调查报告
第4讲 作为上司的职业经理
第3讲 作为同事的职业经理
第2讲 作为下属的职业经理
第1讲 培养经理人的管理素养
酒店前台新员工上岗培训计划

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》