常见伪指令

本文介绍了汇编语言中常见的伪指令,包括符号定义如EQU和=,数据定义如DB、DW等,段定义伪指令如SEGMENT和ENDS,ASSUME段分配语句,过程定义伪指令,宏定义伪指令以及地址定义伪指令ORG和地址指针计数器$的用法。通过实例解析了这些伪指令的使用场景和效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见伪指令

  1. 符号定义伪指令

    1. 赋值语句 EQU
    • 格式:符号 EQU 表达式
    • 将右侧表达式赋值给 左侧符号
    • 注意
      • 使用 EQU 定义的符号只能定义一次,并且不占用内存单元
    • A1 EQU 30 ; A1 = 30
    1. 等号符号 =
    • 格式:符号 = 表达式
    • 注意
      • 与 EQU 具体功能相同,但 ’=‘ 定义的符号可以被重新定义,也不占用内存符号
    • A1 = 20 ; A1 = 30 ; A1 = 30
  2. 数据定义伪指令

  • 为数据分配内存单元,并给所分配的第一个存储单元指定变量名
  • 格式:变量名 伪指令助记符 操作数1 , 操作数2
    1. DB 定义字节,操作数占一个字节空间

    2. DW 定义字 ,操作数占两个字节的空间,存放是低字节放低地址,高地址放高地址

    3. DD 定义双字操作数占四个字节空间,存放时,低字存放低地址,高字存放高地址

    4. DQ 定义 8 字的空间

    5. DT 定义 10 字的空间

    6. ?数据表达式 表示数据无固定值,只用来占据存储空间

    7. DUP 数据表达式 重复数据

      1. 格式: n DUP (表达式1 ,表达式2 ……)n 为次数,括号内为数据项,表示数据项重复n次
      2. 在定义变量及存储 单元的同时,也定义了他们的类型属性,
      3. DUP 可以嵌套使用
    8. 例子

      1. AA DB 50H ; AB DW 1012 H ;
      2. AC DB ? ; AD DB 2 DUP (4,15)
      3. 执行完以上语句的存储空间示意图
      4. 在这里插入图片描述
    9. 例子

      1. DATA1 DB ‘AB’
      2. DATA2 DD ‘AB’
  1. 段定义伪指令

    1. SEGMENT / ENDS
    • 用来定义各种类型的逻辑段 主要是一个声名
    • 格式:段名 SEGMENT
    • ​ 段内语句
    • ​ 段名 ENDS
    1. ASSUME
    • 段分配语句:指出段名与寄存器之间的关系,真正将 段名与寄存器连接起来
    • 格式:ASSUME 段寄存器:段名,段寄存器:段名 ……
  2. 过程定义伪指令

    • 格式:
    • 过程名 PROC [NEAR / FAR ]
    • RET
    • 过程名 ENDP
  3. 宏定义伪指令

    • 格式:
    • 宏指令名 MACRO [形参1 ,形参 2 … ]
    • ​ ENDM
    • 调用格式:
    • 宏指令名 [参数1 ,参数2 ….]
  4. 地址定义伪指令 ORG

  • 指明数据或程序的起始地址的偏移量,即从表达式提供的偏移地址开始存放
  • 格式:ORG 数值表达式
  • ORG 200H
  • 从此语句起,后面的指令或数据从当当前段的 200H 初开始存放
  1. 地址指针计数器 $
  • 表示当前地址指针计数器的值
  • 例子
    • DATA SEGMENT
    • X DW 3,6 ,$+5 , 7 , 8
    • DATA ENDS
    • 则 $+5 = 0009H
      TA SEGMENT
    • X DW 3,6 ,$+5 , 7 , 8
    • DATA ENDS
    • 则 $+5 = 0009H
    • $ = 4 ; $+5 之前占用四个字节
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值