汇编语言逻辑“或”指令与应用示例:OR (Logical Inclusive OR)和 XOR (Logical Exclusive OR)

汇编指令学习(AND,OR,XOR,NOT) 逻辑与运算,二进制位都为1时,才为1,否则为0,置eax为5,置ebx为6,运行下面指令,结果会赋值给eax。逻辑或运算,二进制位都为0时,才为0,否则为1,置eax为5,置ebx为6,运行下面指令,结果会赋值给eax。逻辑异或运算,二进制位相同0,不同为1,置eax为5,置ebx为6,运行下面指令,结果会赋值给eax。逻辑取反运算,二进制位0变为1,1变为0,置eax为5,运行下面指令,结果会赋值给eax。与结果是 0100,十进制是4。结果是 0111,十进制是7。结果是 0011,十进制是3。 阅读详情

1. 定义:
(1) OR是或运算,A OR B的结果:当A、B中只要有一个或者两个都为1时,结果为1,否则为0。
    原则:两个输入有真则真。
    汇编指令OR,称为逻辑包含“或”。
(2) XOR是异或运算,A XOR B的结果:当A、B两个不同时结果为1,否则为0。
    原则:两个输入相异则真。
    汇编指令XOR,称为逻辑互斥“或”(注:使用的是exclusive的第二个字母缩写,因为e已被其它缩写占用)。
2. OR 和 XOR的应用示例:
执行这2条指令(还有逻辑AND指令也是一样)后会将结果存入目标寄存器,对标志位的影响为:会清除溢出标志位(OF)和进位标志位(CF); 符号标志位(SF), 0标识位(ZF)和奇偶标志位(PF)视结果而定。辅助进位标志(AF)未定义。
示例:
TestAsm proc
    xor rax,rax  ;清除eax的内容
    mov rcx,0FFFFFFFFFFFFFFFFH   ; 置为全1
    or rax,rcx   ; ecx的内容存入eax
    ret
TestAsm endp

说明:
(1) 执行 xor rax,rax 指令前,标志寄存器状态:
OV = 0 UP = 0 EI = 1 PL = 0 ZR = 0 AC = 0 PE = 1 CY = 0
(标识位请看这里:标识寄存器状态说明)
rax的状态:RAX = 000000EB55796C00,这是一个随机值
(2) 执行 xor rax,rax 指令后,标志寄存器状态:
OV = 0 UP = 0 EI = 1 PL = 0 ZR = 1 AC = 0 PE = 1 CY = 0
ZR=1,表示操作结果的目标值为0,看rax的值:RAX = 0000000000000000,xor后值存入目标寄存器。
(3) 执行mov rcx,0FFFFFFFFFFFFFFFFH指令后,RCX = FFFFFFFFFFFFFFFF,标志寄存器状态没有变化。
(4) 执行or rax,rcx指定后,rax = FFFFFFFFFFFFFFFF,标志寄存器状态为:
OV = 0 UP = 0 EI = 1 PL = 1 ZR = 0 AC = 0 PE = 1 CY = 0
目标寄存的值rax = FFFFFFFFFFFFFFFFH,因为ZR = 0,表示不为0。

因此,根据其特点,常用or rax,rax 写法(相同寄存器作源操作寄存器,又作目标寄存器)来清0标识寄存器的溢出标志和进位进志(在进行四则运算前),因为它不改变寄存器的值,仅改变标识寄存器的状态;常用xor rax,rax写法来清0寄存器的值。

【微机原理】汇编指令之位操作指令 一、逻辑指令除了NOT指令不对符号位有影响,ANDORXORTEST对符号标志为影响都一样对AF无定义,都使CF=0F=01.AND与指令格式:AND dst,src操作:dst 阅读详情

相关推荐

8086汇编指令笔记

8086/8088汇编指令总结一、数据传送指令1、传送指令:MOV (move) 格式:mov dst,src 具体用法:(1) CPU内部寄存器之间的数据传送,如:mov ah,al(2) 立即数送至通用寄存器(非段寄存器)或存储单元,如:mov al,3 mov [bx],1234h(3) 寄存器与存储器间的数据传送,如:mov ax,var mov ax,[bx]

宋铮的博客 6846

汇编or(或运算)实例加解析

在ASCII码中,大写字母和小写字母之间的差异仅在于第6位,将这一位设置为1即可将大写字母转换为小写字母。具体来说,我们将 AL 寄存器的值与0x20(即二进制的00100000)进行或运算,从而将第6位设置为1。位运算是汇编语言中非常常用的操作之一,它可以对二进制数的每一位进行精确控制,从而实现各种复杂的逻辑操作。请注意,在实际使用中,需要根据具体的编程环境和需求来选择合适的指令和操作数,并进行充分的测试和验证,以确保程序的正确性和可靠性。将转换后的小写字母的ASCII值存储到lowercase变量。

2301_81654001的博客 1147

泰山派RK3576开发板部署Qwen3-VL-4B多模态模型实战指南:从模型转换到板端推理全流程

本文提供了在泰山派RK3576开发板上部署阿里Qwen3-VL-4B多模态模型的完整实战指南。详细介绍了从环境准备、模型转换(包括视觉模型转换为.rknn格式和语言模型转换为.rkllm格式)、交叉编译到板端推理的全流程,重点讲解了如何利用RK3576的NPU进行硬件加速,实现高效的边缘AI应用。

weixin_30356433的博客 259

OR指令介绍

指令在二进制运算中用于检查两个操作数的对应位是否至少有一个为1,而在编程中则常用于判断多个条件中是否至少有一个满足。是另一个重要的逻辑指令,在编程、逻辑电路设计和计算机体系结构中应用广泛。)常用于条件判断,表示多个条件中只要有一个满足即执行相应的操作。可以看到,只要操作数A或操作数B的对应位中有一个是1,结果的对应位就是1。操作在逻辑上是相似的,只不过操作的对象是布尔表达式而不是二进制位。中有一个条件满足,代码块就会被执行。指令的详细解释及示例。

MHD0815的博客 4167

海康H304NAS 刷机飞牛

本文旨在分享如何将闲置的海康威视H304 NAS刷入飞牛NAS系统,并利用iStoreOS作为安装媒介。之前因为使用极空间NAS,这台H304闲置已久。最近尝试了飞牛NAS,在虚拟机上安装后挂载极空间的电影资源,体验不错,于是决定重新折腾这台H304。我个人喜欢尝试新系统,之前经常更新H304的固件,但设备总在使用一两年后出现故障,需要联系技术清理日志才能恢复。最后一次设备“变砖”后,连技术人员也联系不上了,自己尝试修复未果,设备就此闲置两三年。

u012985257的博客 2747

基于Android Studio的校园智能点餐系统开发实战(附完整源码与部署指南)

本文详细介绍了基于Android Studio开发校园智能点餐系统的完整流程,包括需求分析、环境搭建、数据库设计、客户端与后台功能实现。系统采用SSM框架和MySQL数据库,解决了校园食堂高峰期排队问题,提供高效的点餐体验。附完整源码与部署指南,助力开发者快速构建类似应用。

weixin_29015801的博客 559

汇编语言-and和or指令

and 就是与运算,两个数按二进制位相与,全 1 为 1 ,有 0 为 0 ,常用于把低位清零,例如指令 and 0xfffffff0,%esp 将 esp 地址最后一位(16进制,即二进制下的4位)设为 0例如指令: 通过该指令可将操作对象的相应位设为0,其他位不变。or 就是或运算,两个数按二进制位相或例如指令: 通过该指令可将操作对象的相应位设为 1 ,其他位不变。1 && 1 = 10 && 0 = 0A && A = A

余十步的博客 1800

DOORS需求管理实战:从汽车设计案例看模块化需求拆分技巧

本文通过一个汽车设计实战案例,深入解析了如何利用DOORS进行模块化需求拆分与管理。从捕获原始用户需求到精炼为可追踪的系统需求,再到按子系统(如自动驾驶)进行模块化拆分,文章详细展示了构建需求骨架、建立可追溯性以及实施变更控制的完整流程,帮助团队在复杂系统工程中实现从混沌到秩序的高效协同。

ww90123的博客 244

汇编语言-学习笔记

and指令:逻辑与指令,按位进行与运算例:执行后:al=00100011B 0and0=0and指令的功能,通过该指令可将操作对象的相应位设为0,其他位不变。or指令:逻辑或指令,按位进行或运算。例:执行后al=01111011B 1or1=1or指令的功能,通过该指令可将操作对象的相应位设为1,其他位不变。

2402_87943371的博客 995

r3live 使用前提 雷达-相机外参标定 livox_camera_lidar_calibration

港科大livox_camera_calib虽然操作方便,但是使用mid360雷达会有视角问题(投影三维点到相机),尝试了很多场景,标定效果都不理想(推荐场景是楼梯间),看来港大的更适合avia之类窄角度的雷达。如果标定效果不好的话,就使用 getExt2节点,getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

z1872385的博客 2399

C语言读取CSV文件的方法1

逗号分隔值文件格式(CSV),以纯文本形式存储表格数据,它是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。本文介绍利用C语言标准库中的一个字符串处理函数 strtok()来对CSV文件内容进行读取的基本方法

白马负金羁 1万+

x86汇编_布尔指令-AND / OR / XOR / NOT / TEST_笔记_26

Intel指令包含了AND,OR,XOR,NOT,TEST指令,它们能直接在二进制位上实现布尔操作。其中TEST不会改变数据的AND指令,但会改变CPU标志位。 部分布尔指令 AND AND 指令在两个操作数的对应位之间进行按位逻辑与操作,并将结果存放在目标操作数中。操作数可以是 8、16、32、64 位,但是两个操作数必须是同样大小。 OR 或 XOR 异或 NOT 非 TEST 与,但不改变内存数据,只改变CPU状态位。 AND指令 AND指

Silent_Hunter的博客 8775

Python 爬虫实战:付费 IP 代理使用技巧与爬虫稳定性优化

付费IP代理实战指南:突破反爬与优化稳定性 本文系统讲解付费IP代理在爬虫项目中的高效应用方法。首先对比分析静态代理、动态代理和隧道代理的优缺点及适用场景,推荐高并发项目优先选择隧道代理。然后详细演示了主流代理服务商的集成方法,包括代理池的自动更新和健康检测机制。核心部分重点介绍了爬虫稳定性优化策略,如智能重试、频率控制和请求间隔优化等关键技术。最后通过压力测试验证优化效果,并提供成本控制方案,包括代理复用、错峰爬取等实用技巧。通过本教程,开发者可有效解决高并发爬虫中的IP封禁问题,显著提升系统稳定性和抗风

2503_91057718的博客 2450

汇编语言,and、or指令

汇编语言,and、or指令

weixin_53064820的博客 5915

Vue3 - Element Plus 组件库 Tabs 标签页右侧区域插入按钮,<el-tabs> / <el-tab-pane> 选项卡组件右侧自定义插槽内容教程(右边区域添加自定义按钮功能区)

vue3,elementplus,tabs选项卡如何在插槽按钮,tabs标签页组件怎么自定义右侧内容,vue3elementplustabs组件右侧插槽按钮,element-plus在el-tabs组件的最右侧添加按钮,如何在选项卡右边加入按钮搜索框等内容,哪个属性能在tab选项卡右侧插入自定义按钮,在el-tabs组件最右侧添加按钮,vue3el-tabs组件怎么自定义右侧插槽内容,Tabs标签页右侧自定义插槽,ElementPlusTab右边加按钮,el-tabs组件自定义右侧按钮,在E

🏆 前端领域优质创作者 7016

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

PLC_博图系列☞基本指令“或”运算

可以使用指令“或”运算来查询两个或更多指定操作数的信号状态,并根据“或”运算的真值表评估这些信号状态。

DreamLife&Yaothos 2164

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[ARM汇编]计算机原理与数制基础—1.1.4 逻辑运算

在计算机中,逻辑运算是对二进制数据进行操作的基础。逻辑运算主要包括以下几种:与(AND)、或(OR)、非(NOT)和异或(XOR)。接下来,我们将详细介绍这几种逻辑运算的原理及其应用。

Andy0214的专栏 7380

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

速通汇编(四)汇编常用操作符,and&or&neg、shl&shr、inc&dec、xchg指令

汇编常用操作符 下面进行汇编演示:按位或操作符,将两个操作数的对应位进行或操作。 下面进行汇编演示: 将操作数的值取反(按位取反)然后加 1。 将指定的操作数向左移动指定的位数。 将指定的操作数向右移动指定的位数。 下面进行汇编演示:将操作数的值增加 1。 将操作数的值减去 1。 交换两个操作数的值。

这个博主不懒,但Ta什么也没写~(私信互关24小时必回) 2380

汇编语言的逻辑运算---与或非 异或

与运算 逻辑与运算指令AND 格式 #include<stdio.h> main(){ int a; _asm{ mov eax,5 mov ebx,6 and eax,ebx mov a,eax }; printf("%d\n",a); //结果为4 } 或运算 #include<stdio.h> main(){ int...

gclome的博客 1万+

汇编 逻辑运算指令

循环右移 ROR 最低位进入 CF 标志位,再转回到 最高位。或指令 格式 : OR 目的操作数 ,源操作数。测试指令 格式 : TEST 目的操作数 ,源操作数。与指令 格式 : AND 目的操作数 , 源操作数。异或指令 格式 : XOR 目的操作数 ,源操作数。循环左移 ROL 最高位进入 CF 标志位,在转回最低位。

weixin_71018119的博客 1148

【汇编语言】通用数据处理指令——位操作类指令

通用数据处理指令——位操作类指令 一、逻辑运算指令 1.逻辑与指令AND 2.逻辑或指令OR 3.逻辑非指令NOT 4.逻辑异或指令XOR 5.逻辑运算的应用 二、移位指令 1.左移位指令SHL / SAL 2.逻辑右移指令SHR 3.算术右移指令SAR 4.不带进位循环左移指令ROL 5.不带进位循环右移指令ROR 6.带进位循环左移指令RCL 7.带进位循环右移指令RCR

PKM of bk 2561

day08知识点总结:while循环 do...while循环 debug程序调试基本操作(2箭头)及常见问题

while(循环条件){ 循环操作 }先判断,再执行注:开发不用,面试前突击即可do{ 循环体 }while(循环条件);//注意:结尾有分号;注: 解决死循环的方法 在循环体末尾加break和return都可以 break是跳出整个循环 return是跳出整个方法1.设置断点(在对应代码行左击一下) 2.取消断点(在对应代码行再左击一下) 3.启动debug(鼠标放置在任意位置,右键“debug”) 4.若不想显示"Debugger"控制台内容 可点击最小化“-”按钮 5.第三个箭头(从左到右数)

m0_48279672的博客 510

xor 和 or 有什么区别

参考:https://zhidao.baidu.com/question/67532331.html 1.定义区别: ①OR是或运算,A OR B的结果:当A、B中只要有一个或者两个都为1时,结果为1,否则为0; ②XOR是异或运算,A XOR B的结果:当A、B两个不同时结果为1,否则为0。 2.原则区别: ①xor异或的原则是不同则真:设两个布尔型量(或表达式)A,B,则当且仅...

weixin_30740295的博客 3504

编译器优化揭秘:对比for循环的汇编实现与INC vs ADD指令的性能抉择

本文分析了不同优化级别下for循环的汇编实现,重点探讨了INC/DEC指令的特点及其与ADD/SUB指令的性能差异。在禁止优化情况下,for循环会生成标准的初始化、比较和跳转指令;而速度优化时编译器会使用INC指令替代ADD指令以提高效率。文章还对比了do-while和while循环的汇编实现,指出它们都可以转换为等效的for循环形式。通过具体的汇编代码示例,展示了变量初始化、循环控制和函数调用等关键环节在不同优化策略下的代码生成差异,为理解编译器优化行为提供了实践参考。

深耕计算机专业知识与技术。 642

汇编语言—常见汇编指令汇总

汇编语言—常见汇编指令汇总

qq_33300585的博客 2万+

c语言程序源代码_程序员需要了解的硬核知识之汇编语言(全)

之前的系列文章从 CPU 和内存方面简单介绍了一下汇编语言,但是还没有系统的了解一下汇编语言,汇编语言作为第二代计算机语言,会用一些容易理解和记忆的字母,单词来代替一个特定的指令,作为高级编程语言的基础,有必要系统的了解一下汇编语言,那么本篇文章希望大家跟我一起来了解一下汇编语言。汇编语言和本地代码我们在之前的文章中探讨过,计算机 CPU 只能运行本地代码(机器语言)程序,用 C 语言等高级语言编...

weixin_39995774的博客 691
上一篇: X64汇编语言寄存器结构及其与X86架构编程区别
下一篇: MSVC平台下X64处理器函数调用规则——底层机制
ComputerInBook
博客等级 码龄19年 1168粉丝 464原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值