简介: 有别于SSE4.1主要针对加快处理器的多媒体处理,例如图形显示、视频编码及处理、3D图像处理、计算机游戏等,SSE4.2主要针对字符串和文本处理指令应用,细分为STTNI及ATA2个组别;STTNI主要是加速字符串及文本处理,例如XML应用进行高速查找及对比,相较以软件运算,SSE4.2提供约3.8倍的速度,提升及节省2.7倍指令周期,对服务器应用有显著效能改善。
String and Text Processing | |
PCMPESTRI | PCMPESTRI xmm1, xmm2/m128, imm8 Perform a packed comparison of string data with explicit lengths, generating an index, and storing the result in ECX. 对具有显式长度的字符串数据执行打包比较,生成索引,并将结果存储在ECX中。 指令中的xmm1寄存器包含将要进行比较的字符串数据,而xmm2/m128可以包含另一个字符串或者引用包含字符串数据的内存位置。imm8参数指定了比较模式,确定要执行的比较类型(例如相等、小于、大于)。 比较完成后,第一个不匹配或匹配的索引将被存储在ECX寄存器中。这个索引表示在字符串中找到比较结果的位置。它可以用于进一步处理或分析字符串数据。 imm8:
索引:是用来定位或标识数据位置的数值。在字符串比较中,索引通常表示第一个不匹配或匹配的位置,帮助确定在字符串中找到比较结果的具体位置。索引提供了对数据位置的直接引用,方便后续处理或分析。 |
PCMPESTRM | PCMPESTRM xmm1, xmm2/m128, imm8 Perform a packed comparison of string data with explicit lengths, generating a mask, and storing the result in XMM0. 对具有显式长度的字符串数据执行打包比较,生成掩码,并将结果存储在XMM0中。 mm1寄存器包含将要进行比较的字符串数据,而xmm2/m128可以包含另一个字符串或者引用包含字符串数据的内存位置。imm8参数指定了比较模式,确定要执行的比较类型(例如相等、小于、大于)。 比较完成后,根据比较结果生成一个掩码,并将其存储在XMM0寄存器中。这个掩码表示了被比较的字符串中每个字符或字节的比较结果。 掩码:是一种用来标记或筛选数据的二进制序列。在字符串比较中,掩码可以表示每个字符或字节的比较结果,通常用于指示匹配、不匹配或其他比较条件。掩码的每个位对应于相应位置的比较结果,可以帮助识别特定模式或条件
|
PCMPISTRI | PCMPISTRI xmm1, xmm2/m128, imm8 Perform a packed comparison of string data with implicit lengths, generating an index, and storing the result in ECX. xmm1寄存器包含将要进行比较的字符串数据,而xmm2/m128可以包含另一个字符串或者引用包含字符串数据的内存位置。imm8参数指定了比较模式,确定要执行的比较类型(例如相等、小于、大于)。 比较完成后,第一个不匹配或匹配的索引将被存储在ECX寄存器中。这个索引表示在字符串中找到比较结果的位置。它可以用于进一步处理或分析字符串数据。 |
PCMPISTRM | PCMPISTRM xmm1, xmm2/m128, imm8 Perform a packed comparison of string data with implicit lengths, generating a mask, and storing the result in XMM0. xmm1寄存器包含将要进行比较的字符串数据,而xmm2/m128可以包含另一个字符串或者引用包含字符串数据的内存位置。imm8参数指定了比较模式,确定要执行的比较类型(例如相等、小于、大于)。 比较完成后,根据比较结果生成一个掩码,并将其存储在XMM0寄存器中。这个掩码表示了被比较的字符串中每个字符或字节的比较结果。 |
Packed Comparison SIMD integer | |
PCMPGTQ | PCMPGTQ xmm1,xmm2/m128 Compare packed signed qwords in xmm2/m128 and xmm1 for greater than. 将对xmm1和xmm2/m128中的每对64位整数进行比较,如果xmm2/m128中的整数大于xmm1中的整数,则相应结果位将被设置为1;否则,结果位将被设置为0。 举个例子,如果我们有两个 xmm 寄存器 xmm1 和 xmm2 分别包含以下值: xmm1: [10, 20, 30, 40] xmm2: [15, 25, 35, 45] 执行 “PCMPGTQ xmm1, xmm2” 指令后,xmm1 寄存器中的值将根据以下比较结果进行设置:
通过检查 xmm1 寄存器中的值,我们可以了解到 xmm2 中的值与 xmm1 中的值的比较结果。 |
还没有评论,来说两句吧...