• 汇编运算符和表达式


    运算符

    汇编语言由表达式和运算符组成,运算符分为数值运算符和属性运算符。属性运算符面向变量或标号。

    数值运算符:

    算术运算符:

    运算符类型
    +( 正号 ) -( 负号 )
    +( ) -( ) *( ) /( ) MOD( 取模 )
    算术运算符与 立即数 常量 括号 等构成数值表达式。
    变量 不能参与算术运算构成 数值表达式

    关系运算符:

    运算符类型
    EQ( 等于 ) NE( 不等 ) LT( 小于 ) GT( 大于 ) LE( 小于等
    ) GE( 大于等于 )
    可与 立即数 常量 变量 括号 等构成数值表达式。
    关系运算只能有 0 (假) 0FFH (真) 两个返回值。
    返回值以二进制补码形式表示,位数由目的操作数决定;

    逻辑运算符:

    运算符类型
    AND( ) OR( ) NOT( ) XOR( 异或 )
    SHL( 左移 ) SHR( 右移 )
    逻辑运算符可与 立即数 常量 括号 等构成数值表达式。
    变量 不能参与逻辑运算。

    属性运算符:

    段属性操作符SEG

    格式: SEG <标识符>
    功能
    返回标识符所在段的段地址;
    例如:
    MOV AX , SEG NEXT
    MOV BX , SEG DATA
    若存储器如上所示,则以上指令执行后
    (AX) = 1000H (BX) = 2000H

    偏移量属性操作符OFFSET

    格式:
    OFFSET < 标识符 >
    功能
    返回该标识符的段内偏移地址;
    例如:数据段定义如下:
    X1     DW    12H , 100H
    X2     DD     0
    X3    DB     ? , ‘A’
    若执行指令: MOV AX , OFFSET X1
    MOV BX , OFFSET X3
    (AX) = 0000H (BX) = 0008H

    类型操作符TYPE:

    格式
    TYPE < 标识符 >
    功能
    返回变量和标号的类型值;
    类型值
    变量:每个变量所占的字节数;
    标号:标号的 NEAR FAR 类型;

    长度属性操作符LENGTHOF:

    格式
    LENGTHOF < 变量名 >
    只能应用于变量;
    功能
    返回 变量 所定义的数据个数;
    例如
    变量定义为: ARRAY1 DW 2 DUP(0,1) , 1
    则指令 MOV AL , LENGTHOF ARRAY1 后, (AL)=5 ;

    容量属性操作符SIZEOF:

    格式:
    SIZEOF < 变量名 >
    只能应用于变量;
    功能:
    返回 变量 的所占存储单元的数目;(一个字节为一个存储单元);

    运算符的优先顺序:

    表达式

    数值表达式:

    由立即数、常量、字符或字符串与数值运算符构成;

    由变量、标号与属性操作符构成;

    由两个符号地址相减构成两者间的距离表达式。

    地址表达式:

    由变量、标号、运算符、地址计数器$构成;

    地址计数器引用符号$:

    格式:¥[+-Imm]

    其值表示当前偏移量计数器的值+-Imm的立即数;

  • 相关阅读:
    [go学习笔记.第十一章.项目案例] 2.客户信息管理系统
    m基于MATLAB的通信系统仿真,包括信号源,载波信号,放大器,带宽滤波器,接收端包括放大器,带宽滤波器,载波解调,低通滤波器等
    杰理之TIMER0 用默认的 PA13 来检测脉宽【篇】
    【.Net/C#之ChatGPT开发系列】四、ChatGPT多KEY动态轮询,自动删除无效KEY
    图片怎么批量重命名从1到50?
    FreeRtos于嵌入式环境的应用
    list容器排序案例
    单元测试详解
    【PAT甲级 - C++题解】1013 Battle Over Cities
    OptBinning 特征分箱包使用介绍
  • 原文地址:https://blog.csdn.net/m0_63823490/article/details/134030476