汇编语言

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

XOR 指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存放在目标操作数中:

XOR destination, source

XOR 指令操作数组合和大小与 AND 指令及 OR 指令相同。两个操作数的每一对对应位都应用如下操作原则:如果两个位的值相同(同为 0 或同为 1),则结果位等于 0;否则结果位等于 1。

下表描述的是布尔运算 X㊉y:

x

y

x㊉y

0

0

0

0

1

1

1

0

1

1

1

0

与 0 异或值保持不变,与 1 异或则被触发(求补)。对相同操作数进行两次 XOR 运算,则结果逆转为其本身。如下表所示,位 x 与位 y 进行了两次异或,结果逆转为 x 的初始值:

x

y

x㊉y

(x㊉y)㊉y

0

0

0

0

0

1

1

0

1

0

1

1

1

1

0

1

异或运算这种“可逆的”属性使其成为简单对称加密的理想工具。

标志位

XOR 指令总是清除溢岀和进位标志位,并根据目标操作数的值来修改符号标志位、零标志位和奇偶标志位。

检查奇偶标志

奇偶检查是在一个二进制数上实现的功能,计算该数中 1 的个数;如果计算结果为偶数,则说该数是偶校验;如果结果为奇数,则该数为奇校验。

x86 处理器中,当按位操作或算术操作的目标操作数最低字节为偶校验时,奇偶标志位置 1。反之,如果操作数为奇校验,则奇偶标志位清 0。一个既能检查数的奇偶性,又不会修改其数值的有效方法是,将该数与 0 进行异或运算:

mov al,10110101b              ;5 个 1,奇校验

xor al, 0                               ;奇偶标志位清 0 (奇)

mov al, 11001100b             ;4 个 1,偶校验

xor al, 0                               ;奇偶标志位置 1(偶)

Visual Studio 用 PE=1 表示偶校验,PE=0 表示奇校验。

16 位奇偶性

对 16 位整数来说,可以通过将其高字节和低字节进行异或运算来检测数的奇偶性:

mov ax,64Clh    ;0110 0100 1100 0001

xor ah, al            ;奇偶标志位置1 (偶)

将每个寄存器中的置 1 位(等于 1 的位)想象为一个 8 位集合中的成员。XOR 指令把两个集合交集中的成员清 0,并形成了其余位的并集。这个并集的奇偶性与整个 16 位整数的奇偶性相同。

那么 32 位数值呢?如果将数值的字节进行编号,从 B₀ 到 B₃ 那么计算奇偶性的表达式为:B₀ XOR B₁  XOR B₂  XOR B₃。

总结

以上所述是小编给大家介绍的汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

时间: 2020-01-12

汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)...相关推荐

  1. 汇编语言中xor指令_汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作...

    XOR 指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存放在目标操作数中: XOR destination, source XOR 指令操作数组合和大小与 AND 指令及 O ...

  2. cmd指令大全指令_汇编语言常用指令大全

    MOV 指令为双操作数指令,两个操作数中必须有一个是寄存器. MOV DST , SRC // Byte / Word 执行操作: dst = src 1.目的数可以是通用寄存器, 存储单元和段寄存器 ...

  3. 汇编语言中xor指令_汇编各类指令用法及含义分析 - 全文

    什么是汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指 ...

  4. 汇编语言中xor指令_这个汇编代码有什么作用? (TEST,XOR,JNZ)

    TEST和XOR是用于对操作数执行逻辑运算的逻辑指令. 测试指令(比较操作数) TEST destiny, source 它执行操作数的逐位连接,但与AND不同,该指令不会将结果放在目标操作数中,它只 ...

  5. 汇编语言中sbb是什么意思_汇编语言里 sub是 什么功能?

    汇编语言里 sub是 什么功能?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 汇编语言里 sub是 什么功能? 是减法 ...

  6. linux汇编语言cmp,汇编语言中cmp指令用法笔记与总结

    这篇文章主要介绍了汇编语言中cmp指令用法,结合实例形式总结分析了汇编语言cmp指令基本功能.使用方法及操作注意事项,需要的朋友可以参考下 本文实例讲述了汇编语言中cmp指令用法.分享给大家供大家参考 ...

  7. 汇编语言中sbb是什么意思_汇编语言里 sub是 什么功能?

    展开全部 减法指令,不带借位的减法指令.e69da5e887aa3231313335323631343130323136353331333433626535SUB (subtract) 指令的汇编格式 ...

  8. c语言loop指令,汇编语言中loop指令的使用

    现在在学习汇编,感觉挺有意思的!,我就把学习的东西写下来吧,当作以后可以学习的笔记- loop指令的格式是:loop标号,cpu执行loop指令的时候,要进行两步操作 1:(cx)=(cx)-1 2: ...

  9. 计算机汇编指令mov和mova,汇编语言中mov和lea指令的区别详解

    指令(instruction)是一种语句,它在程序汇编编译时变得可执行.汇编器将指令翻译为机器语言字节,并且在运行时由 CPU 加载和执行. 一条指令有四个组成部分: 标号(可选) 指令助记符(必需) ...

最新文章

  1. 数据元素和基本类型对应关系
  2. Git本地仓库与远程仓库关联
  3. 牛客 13822 Keep In Line(枚举与暴力、Python)
  4. nginx缓存、压缩配置
  5. mysql8开启远程访问
  6. 在SQL Server 2016中使用动态数据屏蔽来保护敏感数据
  7. TED如何和压力做朋友(第二天)
  8. Linux的主动实行措施cron和crontab(1)
  9. 微信公众号添加html,微信公众号如何在文章里添加超链接的方法教程
  10. 怎么复制黑苹果config配置_只需3步,实现黑苹果USB端口配置
  11. HTML5仿微信表情框,HTML5高仿微信聊天、微信聊天表情、对话框、编辑器功能
  12. PxCook的基本使用
  13. PHP获取图片和视频类型
  14. 关于Bellman-Ford算法的个人理解
  15. 提高效率必备,EdrawMax亿图图示教你快速制作图表!
  16. eclipse 32位换成64位 maven tomcat svn 集成
  17. 网络工程师面试题(面试必看)(3)
  18. mysql的安装与初始化
  19. Windows 10 下载(1)
  20. vue中使用rem适配方案

热门文章

  1. matlab 设置坐标轴位置/方向 y轴反向
  2. 也许这30句话会帮到你
  3. Reactor And Gev 详解 通俗易懂
  4. 骨传导耳机推荐,列举几款骨传导主流的耳机分享
  5. postgresql获取基于当前时间计算的当月第一天,最后一天,下个月的第n天等功能
  6. python抢票开发——设备预约助手实现
  7. 庆祝鸿蒙指的是哪个生肖,12月中头彩,苦难转幸福,3生肖,鸿蒙紫气,运走上坡路,想啥就有啥...
  8. 当台式机能搜索到WiFi,但是连不上WiFi时,如何解决?
  9. 心跳信号分类---(中)
  10. 安卓期末大作业Android studio-记单词app(资源链接在文末,含注册登录,含设计报告,含导出app文件及源码导入方法文档)