我是靠谱客的博主 霸气小熊猫,最近开发中收集的这篇文章主要介绍比较和测试指令比较和测试指令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

比较和测试指令

1.条件码

除了常用的整数寄存器,CPU还维护着一组单个位的条件码寄存器,他们描述了最近的算术或逻辑操作的属性。这个寄存器在X86CPU内部的名称叫做EFLAGS,在x86-64CPU内部扩展成RFLAGS。

最常用的条件码标志有:

  • CF:进位标志。最近的操作使最高位产生了进位。可用来检查无符号操作的溢出。
  • ZF:零标志。最近的操作得出的结果为0.
  • SF:符号标志。最近的操作得到的结果为负数。
  • OF:溢出标志。最近的操作导致一个补码溢出——正溢出或负溢出。

2.比较指令

CMP指令根据两个操作数之差来设置条件码,除了只设置条件码而不更新目的寄存器之外,CMP指令与SUB的行为是一样的。

指令基于描述
CMP S1, S2S2 - S1比较
cmpb比较字节
cmpw比较字
cmpl比较双字
cmpq比较四字

3.测试指令

TEST指令的行为与AND指令一样,除了它们只设置条件码而不改变目的寄存器的值。

典型的用法是,两个操作数是一样的,或其中的一个操作数是一个掩码,用来指示哪些位应该被测试。

指令基于描述
TEST S1, S2S1 & S2测试
testb测试字节
testw测试字
testl测试双字
testq测试四字

最后

以上就是霸气小熊猫为你收集整理的比较和测试指令比较和测试指令的全部内容,希望文章能够帮你解决比较和测试指令比较和测试指令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部