逻辑运算与移位类

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
例6.30
1. 逻辑与指令AND
0101 1001
1111 0110 0101 0000
6
2. 逻辑或指令OR
➢ OR 指 令 的 格 式 : OR Dest,Src ; DestDest OR Src
➢ 功能:源操作数Src和目的操作数Dest按位 执行或操作,结果送到Dest。
➢ 语法格式:OR Reg/Mem,Reg/MemImm ➢ 对标志位的影响:CF=OF=0,根据结果设
12
4. 逻辑非指令NOT ➢ NOT指令的格式:
NOT Dest;DestNOT Dest ➢ 功能:目的操作数Dest按位执行非操作,结
果送到Dest。 ➢ 语法格式:NOT Reg/Mem ➢ 对标志位的影响:无
13
例6.32
4. 逻辑非指令NOT
0101 1001
1010 0110
14
5. 测试指令TEST
15
TEST
例6.34
test bl,9
jnz there ;标志ZF=0,即D0或D3=1
;则程序转移到there
... 顺序执行
;否则ZF=1,即D0和D3 =0,
there: ...
TEST指令通常用于检测一些条件是否 满足,但又不希望改变原操作数的情况
TEST
例6.34
0101 1001
➢ XOR 指 令 的 格 式 : XOR Dest,Src ; DestDest XOR Src
➢ 功能:源操作数Src和目的操作数Dest按位 执行异或操作,结果送到Dest 。
➢ 语法格式:XOR Reg/Mem,Reg/Mem/Imm ➢ 对标志位的影响:CF=OF=0,根据结果设
置SF、ZF和PF,对AF位定义。
➢ 语法格式:AND Reg/Mem,Reg/Mem/Imm ➢ 对标志位的影响:CF=OF=0,根据结果设
置SF、ZF和PF,对AF位定义。
4
例:逻辑指令应用
; AND 指 令 可 用 于 复 位 某 些 位 ( 同 0 相与),不影响其他位:将BL中D3和 D0位清0,其他位不变 and bl,1111 0110B
22
例6.35:移位指令
mov al,0f0h ;al=f0h=1111 0000B
shl al,1
;al=1110 0000B=e0h
;CF=1,SF=1、ZF=0、PF=0,OF=0
shr al,1
;al=0111 0000B=70h
;CF=0,SF=0、ZF=0、PF=0、OF=1
sar al,1
0
(a)逻辑/算术左移SHL/SHR
操作数
0
MSB
LSB
CF
(b)逻辑右移SHR
操作数
MSB
LSB
CF
(c)算术右移SAR
21
移位指令对标志的影响
➢ 按照移入的位设置进位标志CF ➢ 根据移位后的结果影响SF、ZF、PF ➢ 对AF没有定义 ➢ 如果进行一位移动,则按照操作数的最高符
号位是否改变,相应设置溢出标志OF:如 果移位前的操作数最高位与移位后操作数的 最高位不同(有变化),则OF = 1;否则 OF = 0。当移位次数大于1时,OF不确定
6.3 逻辑运算与移位类指令 ➢逻辑运算指令 ➢移位指令 ➢循环移位指令
1
6.3.1 逻辑运算指令
➢AND ➢OR ➢XOR ➢NOT ➢ TEST
➢ 注意这些指令对标志位的影响
2
1. 逻辑与指令AND
➢ AND指令的格式 AND Dest,Src;DestDest AND Src
➢ 功能:源操作数Src和目的操作数Dest按位 执行与操作,结果送到Dest 。
置SF、ZF和PF,对AF位定义。
7
例:逻辑指令应用
;OR指令可用于置位某些位(同1相 或),不影响其他位:将BL中D3和D0 位置1,其他位不变 or bl, 0000 1001B
8
例6.31
2. 逻辑或指令OR
0101 1001
0000 1001
0101 1001 0101 0000
9
3. 逻辑异或指令XOR
;al=0011 1000B=38h
;CF=0,SF=0、ZF=0、PF=0、OF=0
例6.35:移位指令
al
CF
1111 0000
➢ TEST指令的格式:TEST Dest,Src;Dest AND Src
➢ 功能:源操作数Src和目的操作数Dest按位执行与 操作,Src和Dest都不变,影响标志位。
➢ 语法格式:TEST Reg/Mem,Reg/Mem/Imm ➢ 对标志位的影响:和AND指令一样。
➢ AND与TEST的关系类似SUB与CMP
10
例:逻辑指令应用
; XOR 指 令 可 用 于 求 反 某 些 位 ( 同 1 相异或),不影响其他位:将BL中D3 和D0位求反,其他不变 xor bl, 0000 1001B ;注意NOT与XOR
求反的区别
11
例6.33
3. 逻辑异或指令XOR
0101 1001
0000 1001
0101 0000 0101 0000
0000 1001
0101 1001 0101 0000
17
6.3.2 移位指令
SHL SHR SAR
18
移位指令(shift)
➢ 将操作数移动一位或多位,分成逻辑移位和 算术移位,分别具有左移或右移操作
SHL reg/mem,1/CL SHR reg/;me逻m,辑1/左C移L ,最高位SA进L与入SCHFL,相最同低位补0 SAL reg/;me逻m,辑1/右C移L ,最低位进入CF,最高位补0 SAR reg/;me算m,术1/左C移L ,最高位进入CF,最低位补0
;算术右移,最低位进入CF,最高位不变
19
移位指令的操作数
➢移位指令的第一个操作数是指定的被移 位的操作数,可以是寄存器或存储单元
➢后一个操作数表示移位位数,该操作数 为1,表示移动一位;当移位位数大于 1时,则用CL寄存器值表示,该操作数 表达为CL
20
移位指令(shift)
操作数
CF
MSB
LSB
➢ 语法格式:AND Reg/Mem,Reg/Mem/Imm ➢ 对标志位的影响:CF=OF=0,根据结果设
置SF、ZF和PF,对AF位定义。
3Baidu Nhomakorabea
1. 逻辑与指令AND
➢ AND指令的格式 AND Dest,Src;DestDest AND Src
➢ 功能:源操作数Src和目的操作数Dest按位 执行与操作,结果送到Dest 。
相关文档
最新文档