汇编网首页登录博客注册
fishboy的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态

[2007-12-14 17:09] 【汇编转帖】逻辑指令和移位指令

十进制调整指令

[逻辑指令]

一、逻辑运算

24、逻辑与 AND (logic and)

指令的汇编格式:AND dst,src
指令的基本功能:(dst)<-(dst)与(src)
指令支持的寻址方式:两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。
指令对标志位的影响:指令执行后 CF 和 OF 置零,AF无定义。
                     SF=1 指令执行后的结果为负数(符号位为1)
                     SF=0 指令执行后的结果为正数(符号位为0)
                     ZF=1 指令执行后的结果为零
                     ZF=0 指令执行后的结果不为零
                     PF=1 结果操作数中1的个数为偶数时置1
                     PF=0 结果操作数中1的个数为奇数时置0

25、逻辑或 or (logic or)

指令的汇编格式:OR dst,src
指令的基本功能:(dst)<-(dst)或(src)
指令支持的寻址方式:两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况外,原操作数和目的操作数必须有一个寄存器寻址方式。
指令对标志位的影响:令执行后 CF 和 OF 置零,AF无定义。
                     SF=1 指令执行后的结果为负数(符号位为1)
                     SF=0 指令执行后的结果为正数(符号位为0)
                     ZF=1 指令执行后的结果为零
                     ZF=0 指令执行后的结果不为零
                     PF=1 结果操作数中1的个数为偶数时置1
                     PF=0 结果操作数中1的个数为奇数时置0

26、逻辑非 NOT (logic not)

指令的汇编格式:NOT orc
指令的基本功能:(dst)<-(opr)
指令支持的寻址方式:除立即数寻址方式以外的其余寻址方式
指令对标志位的影响:对标志位无影响

27、异或 XOR (exclusice or)

指令的汇编格式:XOR dst,src
指令的基本功能:(dst)<-(dst)异或(src)
指令支持的寻址方式:两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况外,原操作数和目的操作数必须有一个寄存器寻址方式。
指令对标志位的影响:令执行后 CF 和 OF 置零,AF无定义。
                     SF=1 指令执行后的结果为负数(符号位为1)
                     SF=0 指令执行后的结果为正数(符号位为0)
                     ZF=1 指令执行后的结果为零
                     ZF=0 指令执行后的结果不为零
                     PF=1 结果操作数中1的个数为偶数时置1
                     PF=0 结果操作数中1的个数为奇数时置0

28、测试指令 TEST

指令的汇编格式:TEST opr1,opr2
指令的基本功能:(opr1)与(opr2)
指令支持的寻址方式:两个操作数不能同时为存储器寻址,即为除源操作数为立即数的情况外,源操作数和目的操作数必须有一个寄存器寻址方式。
指令对标志位的影响:令执行后 CF 和 OF 置零,AF无定义。
                     SF=1 指令执行后的结果为负数(符号位为1)
                     SF=0 指令执行后的结果为正数(符号位为0)
                     ZF=1 指令执行后的结果为零
                     ZF=0 指令执行后的结果不为零
                     PF=1 结果操作数中1的个数为偶数时置1
                     PF=0 结果操作数中1的个数为奇数时置0
                    
二、移位指令

29、逻辑左移 SHL (shift logical left)

指令的汇编格式:SHL dst,cnt
指令的基本功能:SHL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。
指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值
                     OF=1 当cnt=1时,移动后最高位的值发生变化。
                     OF=0 当cnt=1时,移动时最高位的值未发生变化。
                     SF、ZF、PF根据移动后的结果设置。

30、逻辑右移 SHR (shift logical right)

指令的汇编格式:SHR dst,cnt
指令的基本功能:SHR指令向右逐位移动cnt次,每次逐位移动后,最高位用0来补充,最低位移入CF。
指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值
                     OF=1 当cnt=1时,移动后最高位的值发生变化。
                     OF=0 当cnt=1时,移动时最高位的值未发生变化。
                     SF、ZF、PF根据移动后的结果设置。

31、算术左移 SAL (shift arithmetic left)

指令的汇编格式:SAL dst cnt
指令的基本功能:SAL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。
指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值
                     OF=1 当cnt=1时,移动后最高位的值发生变化。
                     OF=0 当cnt=1时,移动时最高位的值未发生变化。
                     SF、ZF、PF根据移动后的结果设置。

32、算术右移 SAR (shift arithmetic right)

指令的汇编格式:SAR dst,cnt
指令的基本功能:SAR指令向右逐位移动cnt次,每次逐位移动后,最高位用符号位来补充,最低位移入CF。
指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值
                     OF=1 当cnt=1时,移动后最高位的值发生变化。
                     OF=0 当cnt=1时,移动时最高位的值未发生变化。
                     SF、ZF、PF根据移动后的结果设置。

33、循环左移 ROL (rotate left)

指令的汇编格式:ROL dst,cnt
指令的基本功能:ROL 对由dst指定的寄存器或存储器操作数左移循环移动cnt所指定的次数,每左移一次,把最高位同时移入CF和操作数最低位。
指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值
                     OF=1 当cnt=1时,移动后最高位的值发生变化。
                     OF=0 当cnt=1时,移动时最高位的值未发生变化。
                     SF、ZF、PF根据移动后的结果设置。

34、循环右移 ROR (rotate right)

指令的汇编格式:ROR dst,cnt
指令的基本功能:ROR 对由dst指定的寄存器或存储器操作数右移循环移动cnt所指定的次数,每右移一次,把最低位同时移入CF和操作数最高位。
指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt>1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值
                     OF=1 当cnt=1时,移动后最高位的值发生变化。
                     OF=0 当cnt=1时,移动时最高位的值未发生变化。
                     SF、ZF、PF根据移动后的结果设置。

35、带进位的循环左移 RCL (rotate left through carry)

指令的汇编格式:RCL dst,cnt
指令的基本功能:RCL 对由dst指定的寄存器或存储器操作数,连同进位标志CF左循环移动,m所指定的次数,每左移一次,把操作数的最高位移入CF,而CF中原有内容移入操作数的最低位。
指定支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值。
                     OF=1 当cnt=1时,移动后最高位的值未发生变化。
                     OF=0 当cnt=1时,移动后最高位的值发生变化。
                     SF、ZF、PF标志位不受影响。

36、带进位的循环右移 RCR (rotate right through carry)

指令的汇编格式:RCR dst,cnt
指令的基本功能:RCR 对由dst指定的寄存器或存储器操作数,连同进位标志CF右循环移动,m所指定的次数,每右移一次,把操作数的最高低位移入CF,而CF中原有内容移入操作数的最高位。
指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写入指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值。
                     OF=1 当cnt=1时,操作数最高位的值未发生变化。
                     OF=0 当cnt=1时,操作数最高位的值发生变化。
                     SF、ZF、PF标志位不受影响。
评论次数(4)  |  浏览次数(2537)  |  类型(汇编自留地) |  收藏此文  | 

[  001vs007   发表于  2007-12-28 22:26  ]

共走计算机大道    加油!

[  abcabc   发表于  2008-01-07 16:50  ]

指令集----收藏

[  ding2843   发表于  2008-07-01 16:22  ]

好文章。。。。。。。。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码