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

    
    

属性修改(Attribute modifying operators)伪指令

这种运算符用来对变量、标号或某存储器操作敷的类型属性进行修改。
    1.PTR运算符
    这是类型属性修改运算符.使用格式为;
    类型    PTR    地址表达式
    其中;地址表达式是指要修改类型属性的标号、变量或用作地址指针的寄存器。这运算符的含意是指定由地址表达式确定的存储单元的类型--BYTE、WORD、DWORD、NEAR和FAR等。这种修改是临时性的,仅在有这修改运算符的语句内有效。
    DA_BYTE   DB  20H  DUP(0)
    DA_WORD  DW  30H  DUP(0)
    ┆
    MOV  AX,WORD  PTR  DA_BYTE[10]
    ADD  BYTE  PTR  DA_WORD[20],BL
    INC   BYTE  PTR  [BX]
    SUB  WORD  PTR[SI],30H
    AND  AX,WORD  PTR  [BX][SI]
    JMP  FAR  FIR  SUB1
    上面前两个指令语句主要作用是临时修改变量的类型属性。第三,四条语句,由于目的操作数是用寄存器作地址指针,汇编该指令语句时,就不知道它指的是字节单元还是字单元,因此.这两条语句必须用PTR运算符对类型加以指定。否则汇编源程序时将会产生语法错误。第5条语句不用PTR运算符也可以,因为另一操作数为AX,这样本语句一定为字操作指令。最后一条语句是指标号SUBl不在本语句的同一段内。
    2.THIS运算符
    运算符格式;    THIS    类型
    使用这个运算符的作用是,把运算符后面指定的类型属性赋给当前的存储单元,而该单元的段和偏移量属性不变。
    例如:
    DA_BYTE  EQU THIS BYTE
    DA_WORD  DW  20H  DUP(0)
    上面第二语句是定义了20H个字单元,如要对这数组元素中某单元以字节形式访问它,则可以很方便的直接使用DA_BYTE变量名即可。DA_BYTE和DA_WORD有相同的段和偏移量属性。同样也可以有:
    JUMP_FAR  EQU  THIS  FAR
    JUMP_NEAR:  MOV AL,  30H
    当从段内某指令来调用这程序段时,可以用标号JUMP_NEAR,如从另一代码段来调用时,则可用JUMP_FAR标号。
    运算符THIS和LABEL伪指令有类似效果,上面两个含有THIS的语句可分别改为:
    DA_BYTE   LABEL  BYTE
    JUMP_FAR  LABEL  FAR
    
    

3.3.4 段定义(Segment_definetion)伪指令

为了实现分段结构,MASM提供了一组按段组织程序和调度、分配、使用存贮器的伪指令,他们有SEGMENT、END,ASSUME、ORG等。当程序中需要设置一个段时,就必须首先使用段定义伪指令。
    1.段定义伪指令
    语句格式:段名  SEGMENT  [定位类型]  [组合类型]   [‘类别’]
    ...
    段名  ENDS
    功能及说明:SEGMENT-ENDS必须成对出现,前者为某个段定义了一个名字,即段名,并说明该段的开始;而后者说明该段的结束。其中段名是必须的,它可由用户自己确定。 
    定位类型表示此段的起始边界要求,以便为汇编程序实现段和程序模块的定位及连接提供必要的信息;组合类型的作用是告诉连接程序,当将本段连接及定位到绝对地址时,如何把它与其他段组合起来;类别是一个用单引号括起来的字符串,连接程序把类别相同的段依次连续存放在同一存区。
    ①段名
    由用户自己选定,通常使用与本段用途相关的名字。如第一数据段DATAI,第二数据段DATA2,堆栈段STACKl,代码段CODE.……等等。一个段开始与结尾用的段名应一致。
    ②定位类型(Align--type)
    这个定位类型表示对段的起始边界要求。可有四种选择:
    (1)PAGE(页) 表示本段从一个页的边界开始。一页为256个字节,所以段的起始地址一定能以256整除。这样,段起始地址(段基址)的最后八位二进制数一定为‘0’(也就是以00H结尾的地址)。
    (2)PARA(节):如果定位类型用户未选择,则隐含为PARA。它表示本段从一个节的边界开始。(一节为16十字节)。所以段的起始地址(即段基址)一定能以16整除。最后四位二进制数一定是‘0’。如09150H,0AB30H等。
    (3)WORD(字):表示本段从一个偶字节地址开始。即段起始单元地址的最后一位二进制数一定是‘0’,即以0,2,4,6,8,A,C,E结尾。
    (4)BYTE(字节):表示本段起始单元可从任一地址开始。
    ③组合类型(Combine--type)
    这个组合类型指定段与段之间是怎样连接和定位的,并有六种可供选择:
    (1)NONE:这是隐含选择。表示本段与其他段无连接关系。在装入内存时本段有自己的物理段,因而有自己的段基址。
    (2)PUBLIC:在满足定位类型的前提下,本段与同名的段邻接在一起,形成一个新的逻辑段,公用一个段基址,所有偏移量调整为相对于新逻辑段的起始地址。
    (3)COMMON:产生一个复盖段。在两个模块连接时,把本段与其他亦用COMMON说明的同名段置成相同的起始地址,共享相同的存储区。共享存储区的长度由同名中最大的段确定。
    (4)STACK:把所有同名段连接成一个连续段,且系统自动对段寄存器SS始化在这个连续段的首址,并初始化堆栈指针SP。用户程序中至少有一个段用STACK说明,否则需要用户程序自己初始化SS和SP。
    (5)AT表达式:表示本段可定位在表达式所指示的节边界上.如“AT 0930H”,那么本段从绝对地址09300H开始。
    (6)MEMORY:表示本段在存储器中应定位在所有其他段的最高地址。如有多个MEMORY,则只有把第一个遇到的段当作MEMORY处理,其余的同名段均按PUBLIC说明处理。
    ④类别名(CLASS)
    类别名必须用单引号(’)括起来。类别名可由程序设计人员自己选定任何字符串组成的名字。但是它不能再作程序中的标号、变量名或其他定义符号。在连接处理时,LINK程序把类别名相同的所有段存放在连续的存储区内(如没有指定组合类型PUBLIC,COMMON时,它们仍然是不同的段)。
    以上定位类型,组合类型和类别名三个参数项是任选的。各参数项之间用空格分隔。任选时,可以只选其中一个或两个参数项,但是不能交换它们之间的顺序。
    2.段指定伪指令ASSUME
    语句格式:ASSUME  段寄存器:段名 [,段寄存器:段名]
    功能及说明:该语句一般出现在代码段中,用来设定段寄存器与段之间的对应关系。即某一段的段址存放在相应的段寄存器中。程序中使用这条语句后,宏汇编程序就将这些段作为当前段处理。
    例如:ASSUME  CS:CODE,DS:DATA,SS:STACK,ES:EXTRA 
    该例中,设定了CS为代码段的段寄存器,DS为数据段的段寄存器,ES为附加段的段寄存器,SS为堆栈段的段寄存器。
    3.ORG伪指令
    语句格式:ORG     表达式
    功能及说明:告诉汇编程序在它以后的程序段或数据块存放起点的偏移地址。
    4.程序结束伪指令END
    语句格式:END  表达式
    功能及说明:该语句为汇编语言源程序的最后一个语句,用以标志整个程序的结束,即告诉汇编程序,汇编到此结束,停止汇编工作。 其中表达式的值必须是一个存储器地址,即程序中第一条可执行指令的地址。
    例3.1 操作数可以是常数,或者是表达式(根据该表达式可以求得一个常数),如:
    DATA_BYTE  DB  10,4,10H
    DATA_WORD  DW  100,100H,-5
    DATA_DW  DD 3*20,0FFFDH
    汇编程序可以在汇编期间在存储器存入数据,如下图所示。
    
    图3.5:例3.1的汇编结果
    例3.2 操作数也可以使字符串,如:
    MESSAGE  DB  ‘HELLO’
    则存储器存储情况如图所示,而DB ‘AB’和DW ‘AB’的存储情况则分别如图所示。
    
    图3.6:例3.2的汇编结果
    (1)字符串的存储 (2)DB ‘AB’  (3)DW ‘AB’
    5.标题伪指令(TITLE)
    TITLE 伪指令语句格式:TITLE    文本
    该伪指令用于给程序指定一个标题,以便在列表文件中每一页的第一行都会显示这个标题。它的文本可以是用户任意选用的名字或字符串,但是字符个数不得超过60个.
    
    

 

相关新闻

史上最全软文标题写作套路!
软文写作技巧分享:如何写出阅读量1000万 的标题?
正则表达式中的处理选项

您可能对这些感兴趣  

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

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

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