Irvine的书使用MASM作为参考汇编程序 .

作者正在谈论MASM operators 1 - 这些运营商仅为了我们人类的利益而受到支持 .

它们让我们对立即数和常量执行算术,但它们使用的表达式必须最终在汇编时解析为一个值 .

aConstant EQU 35

mov edx, NOT 1 ;Same as mov edx, 0fffffffeh

mov edx, aConstant AND (NOT 3) ;Same as mov edx, 32

如果您尝试使用其中一个具有非常量值的运算符,MASM将相应地抱怨:

错误A2026:不变的预期

请注意,这里 AND , OR 和 NOT 不是同名指令,存在歧义 - MASM可以从上下文中消除歧义:

mov ax, STATUS_REG OR ENABLE_BIT ;Operator

or ax, bx ;Instruction

从人的角度来看,指令是顺序执行的,因此它们不需要任何优先顺序 .

运算符形成表达式并且必须给出排序 .

我在MASM文档中找不到这样的顺序,所以我通过汇编这段代码直接测试了它

;Results only refer to bit0 of the immediate.

;NOT 0 is 0ffffffffh but I consider it a 1 by the virtue of above.

mov edx, 0 AND (1 OR 1) ;0

mov edx, (0 AND 1) OR 1 ;1

mov edx, 0 AND 1 OR 1 ;? -> 1

mov edx, (NOT 0) AND 0 ;0

mov edx, NOT (0 AND 0) ;1

mov edx, NOT 0 AND 0 ;? -> 0

mov edx, (NOT 0) OR 1 ;1

mov edx, NOT (0 OR 1) ;0

mov edx, NOT 0 OR 1 ;? -> 1

? -> 行是实际测试,从检查生成的二进制可执行文件中收集结果 .

这证明订单是(从最高到低): NOT , AND 和 OR .

当然,这符合通常的逻辑法则和欧文本身,因为我认为引用应解释为:

NOT运算符具有最高优先级,后跟AND,然后是OR

java中or和and的优先级_x86处理器汇编语言AND和OR运算符优先级相关推荐

  1. Java中的“+“,什么时候是连接符,什么时候是运算符

    Java中的"+",什么时候是连接符,什么时候是运算符 今天学习遇到一个有趣的问题,"+"的使用,什么时候是连接符,什么时候是运算符,今天就来聊聊我的理解吧. ...

  2. c语言运算符优先级 从右到左,c语言运算符优先级,结合性(左/右结合详解)

    重新翻了遍c语言,觉得对c语言运算符结合性有必要提一下,毕竟去年我自己刚学c语言的时候,就没搞明白结合性的问题. 什么是左结合?什么是右结合?它们是干嘛用的?它们是什么时候用的? 本文将围绕这几个问题 ...

  3. java中push和pop指令的作用_汇编语言PUSH和POP指令(压栈和出栈)

    汇编里把一段内存空间定义为一个栈,栈总是先进后出,栈的最大空间为 64K.由于 "栈" 是由高到低使用的,所以新压入的数据的位置更低,ESP 中的指针将一直指向这个新位置,所以 E ...

  4. java中jmod是什么,modulo - j中mod的语法是什么

    modulo - j中mod的语法是什么 作为伪代码的一个例子: if ((a mod 2) == 0) { isEven = true; } else { isEven = false; } 15个 ...

  5. Java运算符优先级介绍!

    运算符丰富是 Java 语言的主要特点之一,它提供的运算符数量之多,在高级语言中是少见的.那么当多个运算符出现在一个表达式中,谁先谁后呢? 这就涉及到运算符的优先级别的问题.在一个多运算符的表达式中, ...

  6. Java中 == 和 equals 的区别是什么?

    面试题汇总 Java中 == 和 equals 的区别是什么? 什么是==? == 等于比较运算符,如果进行比较的两个操作数都是数值类型,即使他们的数据类型不相同,只要他们的值相等,也都将返回true ...

  7. php中的逻辑运算符优先级,PHP运算符优先级 运算符分类

    运算符 运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西. 运算符可按照其能接受几个值来分组.一元运算符只能接受一个值,例如 !(逻辑取反运 ...

  8. java中map嵌套map_java中遍历MAP,嵌套map的几种方法

    java中遍历MAP的几种方法 Map map=new HashMap(); map.put("username", "qq"); map.put(" ...

  9. Java 中的函数式编程

    1. 概述 在本教程中,我们将了解函数式编程范式的核心原则以及如何在 Java 编程语言中使用它们. 我们还将介绍一些高级函数式编程技术.这将帮助我们了解 Java 中的函数式编程的好处. 2. 什么 ...

最新文章

  1. 从实例学习多态(Polymorphism [pɔli'mɔ:fizm])
  2. 求助:国际化中资源文件不在classpath中的问题
  3. JavaWeb:JavaScript
  4. 不懂算法,还想进大厂?做梦吧
  5. C#中的默认访问修饰符
  6. js data日期初始化的5种方法
  7. zabbix-通过自动发现添加主机
  8. php 命令设计模式示例,php设计模式(十九)命令模式-Fun言
  9. 3dmax2020卸载/安装失败/如何彻底卸载清除干净3dmax2020注册表和文件的方法
  10. idea git Untracked Files Prevent Pull
  11. Mysql 解决 Your password has expired.
  12. C/C++函数名称修饰规则及extern C的作用(函数名压扎)
  13. 深入了解JVM之内存区域(一)
  14. python之pexpect实现自动交互
  15. flash设置屏保 html,用Flash制作屏保-FlashWiz
  16. 计算机毕业设计基于asp.net的大学生交友网站
  17. 学习「线性代数」看哪篇?推荐这篇,超级棒!
  18. AWD 资源小合集(持续更新)
  19. 大家的人工智能——决策树
  20. iPad 在线音乐播放器

热门文章

  1. 绝非玩笑!人工智能或开创黑客新时代
  2. Codeforces 821C - Okabe and Boxes
  3. mysql不能正常yum remove怎么办?--noscripts
  4. 让你的Silverlight程序部署在任意服务器上
  5. sql 2005 try catch
  6. C++中public protected private的区别
  7. 修改UBOOT和LINUX调试串口(TI达芬奇芯片--DM6467)
  8. 运放的主要参数详细介绍
  9. 德国汽车厂发生机器人杀人事件 人机协作是大势所趋
  10. 聊城大学计算机应用基础函授,聊城大学试题计算机应用基础试题