汇编语言OR指令:对两个操作数进行逻辑(按位)或操作
OR 指令在两个操作数的对应位之间进行(按位)逻辑或(OR)操作,并将结果存放在目标操作数中:
当需要在不影响其他位的情况下,将操作数中的 1 个位或多个位置为 1 时,OR 指令就非常有用了。比如,计算机与伺服电机相连,通过将控制字节的位 2 置 1 来启动电机。假设该控制字节存放在 AL 寄存器中,每一个位都含有重要信息,那么,下面的指令就只设置了位 2:
OR destination, source
OR 指令操作数组合与 AND 指令相同:
OR reg,reg
OR reg,mem
OR reg, imm
OR mem,reg
OR mem,imm
X | Y | X∨Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
当需要在不影响其他位的情况下,将操作数中的 1 个位或多个位置为 1 时,OR 指令就非常有用了。比如,计算机与伺服电机相连,通过将控制字节的位 2 置 1 来启动电机。假设该控制字节存放在 AL 寄存器中,每一个位都含有重要信息,那么,下面的指令就只设置了位 2:
or AL, 00000100b ;位 2 置 1,其他位不变
如果 AL 初始化为二进制数 1110 0011,把它与 0000 0100 进行 OR 操作,其结果等于 1110 0111:
mov al,11100011b
or al, 00000100b ;AL 中的结果 =1110 0111
标志位
OR 指令总是清除进位和溢出标志位,并根据目标操作数的值来修改符号标志位、零标志位和奇偶标志位。比如,可以将一个数与它自身(或 0)进行 OR 运算,来获取该数值的某些信息:or al,al
下表给出了零标志位和符号标志位对 AL 内容的说明:零标志位 | 符号标志位 | AL 中的值 |
---|---|---|
清0 | 清0 | 大于0 |
置1 | 清0 | 等于0 |
清0 | 置1 | 小于0 |
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算