目录
  1. 1. 处理器选择伪操作
  2. 2. 段定义伪操作
    1. 2.1. 完整的段定义伪操作
    2. 2.2. 假定伪指令ASSUME
    3. 2.3. 段组定义伪操作
  3. 3. 数据定义及存储器分配伪操作
    1. 3.1. 格式
    2. 3.2. 重复说明符DUP
    3. 3.3. 强制属性操作符PTR
    4. 3.4. LABEL伪操作
  4. 4. 表达式赋值伪操作
    1. 4.1. 等价语句
    2. 4.2. 等号"="
    3. 4.3. EQU和"="的区别
  5. 5. 地址计数器与对准伪操作
    1. 5.1. 地址计数器 $
    2. 5.2. ORG伪操作
  6. 6. 基数控制伪操作
  7. 7. 其他
    1. 7.1. OFFSET运算符
汇编伪操作

处理器选择伪操作

这类伪操作一般放在程序的最前面,如不给出,则汇编程序默认值为 .8086

段定义伪操作

完整的段定义伪操作

1
2
3
4
段名  SEGMENT  [定位类型]  [组合类型]  [使用类型]  [‘类别’]
……
…… ;语句序列
段名 ENDS
  1. 段名是为该段起的名字,用来指出汇编程序为该段分配的存储区起始位置
  2. 定位类型:PARA(默认),WORD,BYTE,PAGE。
    • 段地址起始地址的限制,PARA限制16的整数倍
  3. 组合类型:PRIVATE(默认),PUBLIC,COMMON,STACK,MEMORY(同PUBLIC),AT 表达式
  4. 使用类型:USE16,USE32.
    • 使用xx位寻址方式
  5. 类别:在引号中给出连接时组成的段组的类型名。在连接后形成的装入模块中,可使相同类别的段位置靠在一起。

假定伪指令ASSUME

  • 格式:ASSUME 段寄存器:段名 [,段寄存器:段名]
  • 功能:建立段寄存器与段之间的对应关系。该伪指令一般出现在代码段中。
    • 只是建立对应关系,但没有赋值,还需要自己初始化段寄存器的值
  • 其中段寄存器名必须是CS,DS,ES和SS中的一个。段名必须是由SEGMENT定义的段中的段名。

段组定义伪操作

  • 格式:段组名 GROUP 数据段名1[,数据段名2……]
  • 功能:汇编程序把各数据段组成一个段组,以便程序在访问各数据段时使用一个数据段寄存器DS。

数据定义及存储器分配伪操作

格式

[变量名] 助记符 操作数 [ , 操作数 , … ] [ ; 注释]

  • 变量名必须是一个合法的标识符,可写可不写
  • 助记符:DB(字节)、DW(字)、DD(双字)、DF(6字节)、DQ(四字)、DT(10字节)
  • 操作数是定义内存单元时的初值表达式,一个定义语句可以有多个初值表达式,各表达式之间必须用逗号 ‘,’ 分开;如果某个存储单元没有初值表达式,则必须用一个问号 ‘?’ 来表示;
    • 注:‘?’表示保留存储空间但不存入数据
  • 注释可以不写

重复说明符DUP

  • 一般形式:repeat_conut DUP(表达式,表达式……)
    • repeat_conut是重复次数
    • (表达式,表达式……)是被重复的部分
    • 表达式可以是存储单元的初值,也可以是另一个DUP式子(可以嵌套)
    • 多个表达式要用逗号 ‘,’ 分开

强制属性操作符PTR

  • 类似于C语言的强制类型转换,为临时属性
  • 一般格式:数据类型 PTR 地址表达式
    • 例如:MOV byte ptr[BX],1H

LABEL伪操作

  • 同一个变量可以具有不同的类型属性,除了可以用PTR来定义外,还可以用LABEL伪操作来定义
  • 一般格式:符号名 LABEL 变量类型
  • LABEL为当前地址的另一别称,不占内存空间

表达式赋值伪操作

等价语句

符号名 EQU 表达式

  • 作用:左边的符号名代表右边的表达式
  • 注意:等价语句不会给符号名分配空间,不能重名,也不能被重新定义

等号"="

符号名=数值表达式

  • 汇编语言提供了 等号"=" 来定义符号常数的方法,即可用符号名代表一个常数。
  • 数值表达式在汇编时应该可以计算出数值,它不能含有向前引用的符号名称
  • 用等号语句定义的符号可以被重复定义

EQU和"="的区别

  • 由EQU伪指令定义后的符号名是不能重复再定义的
  • 而“=”伪指令中定义的符号名可重复定义

地址计数器与对准伪操作

地址计数器 $

  • 作用:保存当前正在汇编的指令的地址
  • $ 用在伪操作的参数字段:表示地址计数器的当前值

ORG伪操作

  • 作用:告诉汇编程序,本伪指令下面的内存变量从该“数值表达式”所指定的地址开始分配。

基数控制伪操作

RADIX 表达式 ; 规定无标记数的基数

其他

OFFSET运算符

  • 格式:OFFSET 变量或标号
  • 功能:分离出其后变量或标号的偏移地址
文章作者: EasonZzZz
文章链接: http://yoursite.com/2019/12/14/学习/汇编/汇编伪操作/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Nice To Meet U