汇编操作数

本文详细介绍了汇编语言中操作数的各种形式,包括常量(如二进制、八进制、十进制、十六进制表示及字符串)、变量(标号、定义、应用与定位)以及符号定义(等价语句、等号语句和定义符号名语句)。此外,还阐述了变量的属性、析值运算符及其属性运算符的功能。内容涵盖了汇编语言基础知识的重要组成部分。
摘要由CSDN通过智能技术生成

汇编语言中的操作数

一、常量

  1. 常数

    汇编语言中,常数有不同的进制。

    二进制以b/B结尾,八进制q/Q结尾,十进制以d/D结尾,十六进制以h/H结尾。

    其中,十进制数是默认基数,可以不加后缀字母;凡是以字母开头的十六进制数都要在前面加一个0,用以区分标识符,如0A25DH

  2. 字符串

    字符串是用单引号或双引号括起来的一个或多个字符,其表示的值是括号里内容的ASCII代码值。

  3. 数值表达式:组成数值表达式的各个部分必须是确定的。

  4. 符号常量:使用标识符表达一个数值

    定义符号常量的伪指令:EQU =

二、变量

标号只被汇编程序识别,表示的是指令的地址,与指令本身操作无关。

变量和标号都表示存储单元。变量表示存储单元中存放的数值,标号表示存储单元中存放的指令代码。

  1. 变量的定义

    [变量名] 变量定义伪指令 参数[,...,参数]

    重复次数 DUP(重复的参数值)复制操作符,用于多个存储单元存储内容相同时

    多字数据存储时,遵循小端方式,即高高低低原则:高字节存储在高地址空间。

    助记符变量类型
    DB字节
    DW
    DD双字
    DQ8字节
    DT10字节

  2. 变量的应用

    1)在指令语句中:变量名表示其指向的存储单元的数据,因此可以通过变量名加减位移量表示以首个数据地址为基址的数据。

    2)在伪指令语句中:通常做另一个变量定义伪指令语句中的参数,单独作为参数只能出现在DW/DD伪指令中

  3. 变量的定位

    默认数据段的偏移地址是从0开始,若想改变,则使用定位伪指令ORG 需要的起始偏移地址

  4. 变量和标号的属性

    1)段属性SEG:对应存储单元所在段的段地址

    2)偏移地址属性OFFSET:对应的首个存储单元的段内偏移地址

    3)类型属性TYPE:变量占用存储单元的字节数

  5. 析值运算符(数值回送运算符):析值运算符 变量名/标号

    析值运算符:SEG,OFFSET,TYPE,LENGTH,SIZE;其中,LENGTH指第一个利用DUP定义的变量中重复的次数,其他情况回送1;SIZE返回LENGTH*TYPE

  6. 属性运算符

    属性运算符功能
    类型 PTR 变量名/标号临时指定或改变使用类型
    THIS 类型用于创建采用当前地址但指定类型的操作数
    SHORT 标号将标号作为短转移处理
    段寄存器:用来给一个存储器操作数指定一个段属性,即段超越

三、符号定义

  1. 等价语句符号名 EQU 表达式

    此处,表达式可以是常数、符号、字符串、数值表达式或地址表达式,定义后两者在引用上可以替换。

    1)EQU不会给符号分配内存空间,与变量定义伪指令不同

    2)不可重新定义,不可与关键词或其他变量名相同

  2. 等号语句符号名 = 数值表达式

    EQU功能基本相同,但可以对一个符号重复定义。

  3. 定义符号名语句符号名 LABEL 类型

    用该语句定义变量或标号的类型,且段属性与偏移属性与下一个紧接着的语句的存储单元的段属性和偏移属性相同,即可以使一个数据区有两种数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值