导航

✨学习笔记——从零开始速通汇编(一):寄存器 | JinYu🐟

🎉学习笔记——从零开始速通汇编(二):汇编程序语句结构&寻址方式 | JinYu🐟

🎊学习笔记——从零开始速通汇编(三):数据传送类&算术运算类指令系统 | JinYu🐟

🎃学习笔记——从零开始速通汇编(四):逻辑运算与移位操作类指令系统 | JinYu🐟

🎄学习笔记——从零开始速通汇编(五):程序控制类&串操作类指令系统 | JinYu🐟


学习笔记——从零开始速通汇编(四):逻辑运算与移位操作类指令系统

逻辑运算与移位操作类指令

逻辑运算类指令

逻辑运算是按位进行的,位与位之间不存在任何关联

AND指令(与ADD指令要求一致)

指令格式:AND DST,SRC

指令功能:DST←(DST)∧(SRC)

ADD指令是逻辑”与“运算指令

OR指令

指令格式:OR DST,SRC

指令功能:DST←(DST)∨(SRC)

OR指令是逻辑”或“运算指令

OR指令在使用上的要求以及对条件标志的影响与AND指令完全相同

XOR指令

指令格式:XOR DST,SRC

指令功能:DST←(DST)⊕(SRC)

XOR指令是逻辑”异或“运算指令

XOR指令在使用上的要求以及对条件标志的影响与AND指令完全相同

NOT指令

指令格式:NOT OPR

指令功能:OPR←(OPR)

NOT是逻辑”非“运算指令

注意:

  • OPR不能为立即数或段寄存器
  • OPR必须有明确的数据类型
  • NOT指令不影响任何条件标志

TEST指令

指令格式:TEST DST,SRC

指令功能:(DST)∧(SRC)

TEST指令执行逻辑”与“运算,但不保存运算结果,只像AND指令那样影响有关条件标志

TEST指令称为测试指令,主要用于测试数据中某位是0还是1

移位操作类指令

移位操作用于对一个数据的各位做向左向右移动

移位操作可分为逻辑移位算数移位循环移位三类

各类移位指令的格式如下:

移位指令及格式

DST是被移位操作数,SRC是移位的次数

注意:

  • DST不能是立即数和段寄存器
  • 必须有明确的类型
  • 当CNT=1时可以直接写1,否则必须用CL表示移位次数

其中,DST是被移位的操作数,CNT是移位的次数

示意图