java中or和and的优先级_x86处理器汇编语言AND和OR运算符优先级
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运算符优先级相关推荐
- Java中的“+“,什么时候是连接符,什么时候是运算符
Java中的"+",什么时候是连接符,什么时候是运算符 今天学习遇到一个有趣的问题,"+"的使用,什么时候是连接符,什么时候是运算符,今天就来聊聊我的理解吧. ...
- c语言运算符优先级 从右到左,c语言运算符优先级,结合性(左/右结合详解)
重新翻了遍c语言,觉得对c语言运算符结合性有必要提一下,毕竟去年我自己刚学c语言的时候,就没搞明白结合性的问题. 什么是左结合?什么是右结合?它们是干嘛用的?它们是什么时候用的? 本文将围绕这几个问题 ...
- java中push和pop指令的作用_汇编语言PUSH和POP指令(压栈和出栈)
汇编里把一段内存空间定义为一个栈,栈总是先进后出,栈的最大空间为 64K.由于 "栈" 是由高到低使用的,所以新压入的数据的位置更低,ESP 中的指针将一直指向这个新位置,所以 E ...
- java中jmod是什么,modulo - j中mod的语法是什么
modulo - j中mod的语法是什么 作为伪代码的一个例子: if ((a mod 2) == 0) { isEven = true; } else { isEven = false; } 15个 ...
- Java运算符优先级介绍!
运算符丰富是 Java 语言的主要特点之一,它提供的运算符数量之多,在高级语言中是少见的.那么当多个运算符出现在一个表达式中,谁先谁后呢? 这就涉及到运算符的优先级别的问题.在一个多运算符的表达式中, ...
- Java中 == 和 equals 的区别是什么?
面试题汇总 Java中 == 和 equals 的区别是什么? 什么是==? == 等于比较运算符,如果进行比较的两个操作数都是数值类型,即使他们的数据类型不相同,只要他们的值相等,也都将返回true ...
- php中的逻辑运算符优先级,PHP运算符优先级 运算符分类
运算符 运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西. 运算符可按照其能接受几个值来分组.一元运算符只能接受一个值,例如 !(逻辑取反运 ...
- java中map嵌套map_java中遍历MAP,嵌套map的几种方法
java中遍历MAP的几种方法 Map map=new HashMap(); map.put("username", "qq"); map.put(" ...
- Java 中的函数式编程
1. 概述 在本教程中,我们将了解函数式编程范式的核心原则以及如何在 Java 编程语言中使用它们. 我们还将介绍一些高级函数式编程技术.这将帮助我们了解 Java 中的函数式编程的好处. 2. 什么 ...
最新文章
- 从实例学习多态(Polymorphism [pɔli'mɔ:fizm])
- 求助:国际化中资源文件不在classpath中的问题
- JavaWeb:JavaScript
- 不懂算法,还想进大厂?做梦吧
- C#中的默认访问修饰符
- js data日期初始化的5种方法
- zabbix-通过自动发现添加主机
- php 命令设计模式示例,php设计模式(十九)命令模式-Fun言
- 3dmax2020卸载/安装失败/如何彻底卸载清除干净3dmax2020注册表和文件的方法
- idea git Untracked Files Prevent Pull
- Mysql 解决 Your password has expired.
- C/C++函数名称修饰规则及extern C的作用(函数名压扎)
- 深入了解JVM之内存区域(一)
- python之pexpect实现自动交互
- flash设置屏保 html,用Flash制作屏保-FlashWiz
- 计算机毕业设计基于asp.net的大学生交友网站
- 学习「线性代数」看哪篇?推荐这篇,超级棒!
- AWD 资源小合集(持续更新)
- 大家的人工智能——决策树
- iPad 在线音乐播放器