
🎓 微机原理考点专栏(通篇免费)
欢迎来到我的微机原理专栏!我将帮助你在最短时间内掌握微机原理的核心内容,为你的考研或期末考试保驾护航。
为什么选择我的视频?
- 全程考点讲解:每一节视频都紧扣考试要点,拒绝冗余,专注于最关键的知识点。
- 系统且高效:我已经为你精心准备了系统的学习资料,让你不再迷茫。
🔗 点击这里观看我的视频讲解 🔗
我需要你的支持
我为这套视频投入了大量精力,希望它能对你的学习有所帮助。如果你觉得内容有用,请给我的视频点个赞、评论、并关注我,这将是我继续创作的最大动力!
🙏 感谢你的支持!祝你学有所成! 🙏
3.6 逻辑运算
| NOT 目的 | 按位取反 |
|---|---|
| AND 目的, 源 | 目的 与 源 → 目的 |
| OR 目的, 源 | 目的 或 源 → 目的 |
| XOR 目的, 源 | 目的 异或 源 → 目的 |
| TEST 目的, 源 | 目的 按位与 源,并修改标志位,但不回送结果 |
1. NOT 指令
功能: 按位取反,将操作数中的每一位都变成其相反的值(0变1,1变0)。
格式: NOT 目的
示例:
MOV AL, 0F0H ; AL = 1111 0000B
NOT AL ; AL = 0000 1111B
解释:
- 初始值
AL = 0F0H,其二进制表示为1111 0000。 - 执行
NOT AL后,AL变为0000 1111(即0FH)。
2. AND 指令(与操作,全是1才是1)
功能: 按位与操作,将 目的 和 源 的每一位进行与操作,结果存储在 目的 中。
格式: AND 目的,源
示例:
MOV AL, 0F0H ; AL = 1111 0000B
MOV BL, 0CCH ; BL = 1100 1100B
AND AL, BL ; AL = 1100 0000B
解释:
AL的初始值为0F0H(1111 0000B),BL的初始值为0CCH(1100 1100B)。- 执行
AND AL, BL后,AL变为1100 0000B(即C0H)。
3. OR 指令(或操作,逢1是1)
功能: 按位或操作,将 目的 和 源 的每一位进行或操作,结果存储在 目的 中。
格式: OR 目的,源
示例:
MOV AL, 0F0H ; AL = 1111 0000B
MOV BL, 0CCH ; BL = 1100 1100B
OR AL, BL ; AL = 1111 1100B
解释:
AL的初始值为0F0H(1111 0000B),BL的初始值为0CCH(1100 1100B)。- 执行
OR AL, BL后,AL变为1111 1100B(即FCH)。
4. XOR 指令(异或操作,单为1,偶为0)
功能: 按位异或操作,将 目的 和 源 的每一位进行异或操作,结果存储在 目的 中。
格式: XOR 目的,源
示例:
MOV AL, 0F0H ; AL = 1111 0000B
MOV BL, 0CCH ; BL = 1100 1100B
XOR AL, BL ; AL = 0011 1100B
解释:
AL的初始值为0F0H(1111 0000B),BL的初始值为0CCH(1100 1100B)。- 执行
XOR AL, BL后,AL变为0011 1100B(即3CH)。
5. TEST 指令
功能: 按位与操作,将 目的 和 源 的每一位进行与操作,并更新标志位(如零标志、进位标志),但不改变 目的。
格式: TEST 目的,源
示例:
MOV AL, 0F0H ; AL = 1111 0000B
MOV BL, 0CCH ; BL = 1100 1100B
TEST AL, BL ; 检查 AL 和 BL 的按位与结果
解释:
AL的初始值为0F0H(1111 0000B),BL的初始值为0CCH(1100 1100B)。- 执行
TEST AL, BL后,结果是1100 0000B(即C0H)。 - 标志位更新如下:
- 零标志 (ZF): 如果结果为0,ZF 置1。否则,ZF 置0。
- 进位标志 (CF): 根据结果和操作情况更新(通常,
TEST指令不会直接设置 CF,但会影响其他标志)。











![[嵌入式 C 语言] int main(int argc, char *argv[])](https://i-blog.csdnimg.cn/direct/2d5cab83e4fd48f2b33a31ca7ec83c3a.png)









