汇编指令速查 您所在的位置:网站首页 jo是什么 汇编指令速查

汇编指令速查

2023-04-03 07:40| 来源: 网络整理| 查看: 265

汇编指令速查

https://www.cnblogs.com/findumars/p/3498714.html

 

GAS中每个操作都是有一个字符的后缀,表明操作数的大小。

 

C声明

GAS后缀

大小(字节)

char

b

1

short

w

2

(unsigned) int / long / char*

l

4

float

s

4

double

l

8

long double

t

10/12

注意:GAL使用后缀“l”同时表示4字节整数和8字节双精度浮点数,这不会产生歧义因为浮点数使用的是完全不同的指令和寄存器。

 

 

操作数格式:

格式

操作数值

名称

样例(GAS = C语言)

$Imm

Imm

立即数寻址

$1 = 1

Ea

R[Ea]

寄存器寻址

%eax = eax

Imm

M[Imm]

绝对寻址

0x104 = *0x104

(Ea)

M[R[Ea]]

间接寻址

(%eax)= *eax

Imm(Ea)

M[Imm+R[Ea]]

(基址+偏移量)寻址

4(%eax) = *(4+eax)

(Ea,Eb)

M[R[Ea]+R[Eb]]

变址

(%eax,%ebx) = *(eax+ebx)

Imm(Ea,Eb)

M[Imm+R[Ea]+R[Eb]]

寻址

9(%eax,%ebx)= *(9+eax+ebx)

(,Ea,s)

M[R[Ea]*s]

伸缩化变址寻址

(,%eax,4)= *(eax*4)

Imm(,Ea,s)

M[Imm+R[Ea]*s]

伸缩化变址寻址

0xfc(,%eax,4)= *(0xfc+eax*4)

(Ea,Eb,s)

M(R[Ea]+R[Eb]*s)

伸缩化变址寻址

(%eax,%ebx,4) = *(eax+ebx*4)

Imm(Ea,Eb,s)

M(Imm+R[Ea]+R[Eb]*s)

伸缩化变址寻址

8(%eax,%ebx,4) = *(8+eax+ebx*4)

注:M[xx]表示在存储器中xx地址的值,R[xx]表示寄存器xx的值,这种表示方法将寄存器、内存都看出一个大数组的形式。

 

 

数据传送指令:

指令

效果

描述

movl S,D

D pop 把字弹出堆栈 PUSHA---->push all 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈 POPA---->pop all 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈 PUSHAD---->push all data 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈 POPAD---->pop all data 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈 BSWAP---->byte swap 交换32位寄存器里字节的顺序 XCHG---->exchange 交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG---->compare and change 比较并交换操作数.第二个操作数为累加器AL/AX/EAX XADD---->exchange and add 先交换再累加.(结果在第一个操作数里) XLAT---->translate 字节查表转换 2.输入输出端口传送指令. IN---->input I/O端口输入.(语法: IN 累加器,{ 端口号│DX }) OUT---->output I/O端口输出.(语法: OUT { 端口号│DX },累加器) 3.目的地址传送指令. LEA---->load effective address 装入有效地址 LDS---->load DS 传送目标指针,把指针内容装入DS LES---->load ES 传送目标指针,把指针内容装入ES LFS---->load FS 传送目标指针,把指针内容装入FS LGS---->load GS 传送目标指针,把指针内容装入GS LSS---->load SS 传送目标指针,把指针内容装入SS 4.标志传送指令. LAHF---->load AH from flag 标志寄存器传送,把标志装入AH. SAHF---->save AH to flag 标志寄存器传送,把AH内容装入标志寄存器 PUSHF---->push flag 标志入栈 POPF---->pop flag 标志出栈 PUSHD---->push dflag 32位标志入栈 POPD---->pop dflag 32位标志出栈 二、算术运算指令 ADD---->add 加法 ADC---->add with carry 带进位加法 INC---->increase 1 加1 AAA---->ascii add with adjust 加法的ASCII码调整 DAA---->decimal add with adjust 加法的十进制调整 SUB---->substract 减法 SBB---->substract with borrow 带借位减法 DEC---->decrease 1 减1 NEC---->negative 求反(以 0 减之) CMP---->compare 比较.两操作数作减法,仅修改标志位,不回送结果 AAS---->ascii adjust on substract 减法的ASCII码调整. DAS---->decimal adjust on substract 减法的十进制调整 MUL---->multiplication 无符号乘法,结果回送AH和AL(字节运算),或DX和AX(字运算) IMUL---->integer multiplication 整数乘法,结果回送AH和AL(字节运算),或DX和AX(字运算) AAM---->ascii adjust on multiplication 乘法的ASCII码调整 DIV---->divide 无符号除法 IDIV---->integer divide 整数除法,商回送AL余数回送AH,字节运算,商回送AX余数回送DX,字运算 AAD---->ascii adjust on divide 除法的ASCII码调整 CBW---->change byte to word 字节转换为字.(把AL中字节的符号扩展到AH中去) CWD---->change word to double word 字转换为双字.(把AX中的字的符号扩展到DX中去) CWDE---->change word to double word with sign to EAX字转换为双字.(把AX中的字符号扩展到EAX中去) CDQ---->change double word to quadrate word 双字扩展.把EAX中的字的符号扩展到EDX 三、逻辑运算指令 AND---->and 与运算 OR---->or 或运算 XOR---->xor 异或运算 NOT---->not 取反 TEST---->test 测试.(两操作数作与运算,仅修改标志位,不回送结果) SHL---->shift left 逻辑左移 SAL---->arithmatic shift left 算术左移.(=SHL) SHR---->shift right 逻辑右移 SAR---->arithmatic shift right 算术右移.(=SHR) ROL---->rotate left 循环左移 ROR---->rotate right 循环右移 RCL---->rotate left with carry 通过进位的循环左移 RCR---->rotate right with carry 通过进位的循环右移 四、串指令 MOVS---->move string 串传送,MOVSB传送字符、MOVSW传送字、MOVSD传送双字 CMPS---->compare string 串比较,CMPSB比较字符、CMPSW比较字 SCAS---->scan string 串扫描,把AL或AX的内容与目标串作比较,比较结果反映在标志位 LODS---->load string 装入串,把源串中的元素(字或字节)逐一装入AL或AX中,LODSB传送字符、LODSW传送字、LODSD传送双字 STOS---->store string 保存串,是LODS的逆过程 REP---->repeat 当CX/ECX0时重复 REPE---->repeat when equal 当比较结果相等,且CX/ECX0时重复 REPZ---->repeat when zero flag 当ZF=1,且CX/ECX0时重复 REPNE---->repeat when not equal 当比较结果不相等,且CX/ECX0时重复 REPNZ---->repeat when zero flag 当ZF=0,且CX/ECX0时重复 REPC---->repeat when carry flag 当CF=1且CX/ECX0时重复 REPNC---->repeat when not carry flag 当CF=0且CX/ECX0时重复 五、程序转移指令 1>无条件转移指令(长转移) JMP---->jump 无条件转移指令 CALL---->call 过程调用 RET---->return 过程返回 RETF---->return far 过程返回 2>条件转移指令(短转移,-128到+127的距离内) :当且仅当(SF XOR OF)=1时,OP1jump when above or equal 不小于时转移 JNB---->jump when not below 不小于时转移 JB---->jump when below 小于时转移 JNAE---->jump when not above or equal 小于时转移 JBE---->jump when below or equal 小于等于时转移 JNA---->jump when not above 小于等于时转移 以上条目,测试无符号整数运算的结果(标志C和Z) JG---->jump when greater 大于转移 JNLE---->jump when not less or equal 大于转移 JGE---->jump when greater or equal 大于等于转移 JNL---->jump when not less 大于等于转移 JL---->jump when less 小于转移 JNGE---->jump when not greater or equal 小于转移 JLE---->jump when less or equal 小于等于转移 JNG---->jump when not greater 小于等于转移 以上条目,测试带符号整数运算的结果(标志S,O和Z). JE---->jump when equal 等于转移 JZ---->jump when has zero flag 结果为0转移 JNE---->jump when not equal 不等于转移 JNZ---->jump when not has zero flag 结果不为0转移 JC---->jump when has carry flag 有进位转移 JNC---->jump when not has carry flag 无进位转移 JNO---->jump when not has overflow flag 不溢出时转移 JNP---->jump when not has parity flag 奇偶性为奇数时转移 JPO---->jump when parity flag is odd 奇偶性为奇数时转移 JNS---->jump when not has sign flag 符号位为0时转移 JO---->jump when has overflow flag 溢出时转移 JP---->jump when has parity flag 奇偶性为偶数时转移 JPE---->jump when parity flag is even 奇偶性为偶数时转移 JS---->jump when has sign flag 符号位为0时转移 3>循环控制指令(短转移) LOOP---->loop CX不为零时循环 LOOPE---->loop equal CX不为零且结果相等时循环(相等时Z=1) LOOPZ---->loop zero CX不为零且标志Z=1时循环 LOOPNE---->loop not equal CX不为零且结果不相等时循环(相等时Z=0) LOOPNZ---->loop not zero CX不为零且标志Z=0时循环 JCXZ---->jump when CX is zero CX为零时转移 JECXZ---->jump when ECX is zero ECX为零时转移 4>中断指令 INT---->interrupt ECX为零时转移 INTO---->overflow interrupt 溢出中断 IRET---->interrupt return 中断返回 5>处理器控制指令 HLT---->halt 处理器暂停,直到出现中断或复位信号才继续 WAIT---->wait 当芯片引线TEST为高电平时使CPU进入等待状态 ESC---->escape 转换到外处理器 LOCK---->lock 封锁总线 NOP---->no operation 空操作 STC---->set carry 置进位标识位 CLC---->clear carry 清进位标识位 CMC---->carry make change 进位标识取反 STD---->set direction 置方向标识位 CLD---->clear direction 清方向标识位 STI---->set interrupt 置中断允许位 CLI---->clear interrupt 清中断允许位 六、伪指令 DW---->definw word 定义字(2字节) PROC---->procedure 定义过程 ENDP---->end of procedure 过程结束 SEGMENT---->segment 定义段 ASSUME---->assume 建立段寄存器寻址 ENDS---->end segment 段结束 END---->end 程序结束

 

AAA-添加后进行ASCII调整 AAD-ASCII分割前调整AX AAM-ASCII调整AX后乘以 AAS-ASCII减法后调整AL ADC-带进位加法 ADCX - 带进位标志的两个操作数的无符号整数相加 ADD-加 ADDPD-Add打包的双精度浮点值 ADDPS-Add打包的单精度浮点值 ADDSD-Add标量双精度浮点值 ADDSS - add标量单精度浮点值 ADDSUBPD-压缩双FP加/减 ADDSUBPS-压缩单FP加/减 ADOX - 带有溢出标志的两个操作数的无符号整数 AESDEC - 执行一轮AES解密流程 AESDECLAST - 执行AES解密流的最后一轮 AESENC - 执行一轮AES加密流程 AESENCLAST - 执行AES加密流的最后一轮 AESIMC - 执行AES InvMixColumn转换 AESKEYGENASSIST-AES轮回密钥生成辅助 AND-逻辑与 ANDN - 逻辑AND NOT ANDPD-压缩双精度浮点值的按位逻辑与 ANDPS—压缩单精度浮点值的按位逻辑与 ANDNPD—压缩双精度浮点值的按位逻辑AND NOT ANDNPS—压缩单精度浮点值的按位逻辑AND NOT ARPL—调整段选择器的RPL字段 BLENDPD — 混合封装双精度浮点值 BEXTR — 位字段提取 BLENDPS — 混合封装的单精度浮点值 BLENDVPD — 可变混合封装双精度浮点值 BLENDVPS — 可变混合封装单精度浮点值 BLSI — 提取最低设置隔离位 BLSMSK — 获取掩码到最低设置位 BLSR — 复位最低设置位 BNDCL—检查下限 BNDCU/BNDCN—检查上边界 BNDLDX—使用地址转换加载扩展边界 BNDMK—制作界限 BNDMOV—移动边界 BNDSTX—使用地址转换存储扩展边界 BOUND—检查阵列索引对边界 BSF—位扫描转发 BSR—位扫描反转 BSWAP—字节交换 BT—位测试 BTC—位测试和补码 BTR—位测试和复位 BTS—位测试和设置 BZHI — 从指定位位置开始的零高位 CALL—调用过程 CBW/CWDE/CDQE—将字节转换为字/将字转换为双字/将双字转换为四字 CLAC—清除EFLAGS寄存器中的AC标志 CLC—清除进位标志 CLD—清除方向标志 CLFLUSH—刷新缓存行 CLFLUSHOPT—刷新缓存行已优化 CLI — 清除中断标志 CLTS—清除CR0中的任务切换标志 CLWB—高速缓存行回写 CMC—补充进位标志 CMOVcc—条件移动 CMP—比较两个操作数 CMPPD—比较打包的双精度浮点值 CMPPS—比较打包的单精度浮点值 CMPS/CMPSB/CMPSW/CMPSD/CMPSQ—比较字符串操作数 CMPSD—比较标量双精度浮点值 CMPSS—比较标量单精度浮点值 CMPXCHG—比较和交流 CMPXCHG8B/CMPXCHG16B—比较和交换字节 COMISD—比较标量有序双精度浮点值和设置EFLAGS COMISS—比较标量有序单精度浮点值和设置EFLAGS CPUID—CPU识别 CRC32 — 累加CRC32值 CVTDQ2PD—将打包的双字整数转换为打包的双精度浮点值 CVTDQ2PS—将打包的双字整数转换为打包的单精度浮点值 CVTPD2DQ—将打包的双精度浮点值转换为打包的双字整数 CVTPD2PI—将打包的双精度FP值转换为打包的双字整数 CVTPD2PS—将打包的双精度浮点值转换为打包的单精度浮点值 CVTPI2PD—将打包的双字整数转换为打包的双精度FP值 CVTPI2PS—将打包的双字整数转换为打包的单精度FP值 CVTPS2DQ—将打包的单精度浮点值转换为打包签名的双字整数值 CVTPS2PD—将打包的单精度浮点值转换为打包的双精度浮点值 CVTPS2PI—将打包的单精度FP值转换为打包的双字整数 CVTSD2SI—将标量双精度浮点值转换为双字整数 CVTSD2SS—将标量双精度浮点值转换为标量单精度浮点值 CVTSI2SD—将双字整数转换为标量双精度浮点值 CVTSI2SS—将双字整数转换为标量单精度浮点值 CVTSS2SD—将标量单精度浮点值转换为标量双精度浮点值 CVTSS2SI—将标量单精度浮点值转换为双字整数 CVTTPD2DQ—转换为截断打包的双精度浮点值到打包的双字整数 CVTTPD2PI—转换为截断打包的双精度FP值到打包的双字整数 CVTTPS2DQ—将截断转换为打包的单精度浮点值到打包签名的双字整数值 CVTTPS2PI—转换为截断打包的单精度FP值到打包的双字整数 CVTTSD2SI—将截断的标量双精度浮点值转换为有符号整数 CVTTSS2SI—将截断标量单精度浮点值转换为整数 CWD/CDQ/CQO—将字转换为双字/将双字转换为四字 DAA—十进制加法后调整AL DAS—十进制减法后调整AL DEC—减少1 DIV—无符号除法 DIVPD—除法包装的双精度浮点值 DIVPS—分割打包的单精度浮点值 DIVSD—除法标量双精度浮点值 DIVSS—除法标量单精度浮点值 DPPD — 封装双精度浮点值的点积 DPPS — 封装单精度浮点值的点积 EMMS—空MMX技术状态 ENTER—为过程参数创建堆栈框架 EXTRACTPS—提取打包的浮点值 F2XM1—计算2x-1 FABS—绝对值 FADD/FADDP/FIADD—Add FBLD—加载二进制编码十进制 FBSTP—存储BCD整数和弹出 FCHS—更改标志 FCLEX/FNCLEX—清除例外 FCMOVcc—浮点条件移动 FCOM/FCOMP/FCOMPP—比较浮点值 FCOMI/FCOMIP/ FUCOMI/FUCOMIP—比较浮点值和设置EFLAGS FCOS— 余弦 FDECSTP—减少堆栈顶指针 FDIV/FDIVP/FIDIV—划分 FDIVR/FDIVRP/FIDIVR—反向分割 FFREE—自由浮点寄存器 FICOM/FICOMP—比较整数 FILD—加载整数 FINCSTP—增加堆栈顶指针 FINIT/FNINIT—初始化浮点单元 FIST/FISTP—存储整数 FISTTP—存储整数与截断 FLD—加载浮点值 FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ—负载常数 FLDCW—加载x87 FPU控制字 FLDENV—加载x87 FPU环境 FMUL/FMULP/FIMUL—乘 FNOP—无操作 FPATAN—部分反正切 FPREM—部分剩余 FPREM1—部分剩余 FPTAN—部分切线 FRNDINT—舍入为整数 FRSTOR—恢复x87 FPU状态 FSAVE/FNSAVE—存储x87 FPU状态 FSCALE—规模 FSIN—正弦 FSINCOS—正弦和余弦 FSQRT—平方根 FST/FSTP—存储浮点值 FSTCW/FNSTCW—存储x87 FPU控制字 FSTENV/FNSTENV—存储x87 FPU环境 FSTSW/FNSTSW—存储x87 FPU状态字 FSUB/FSUBP/FISUB—减去 FSUBR/FSUBRP/FISUBR—反向减 FTST—TEST FUCOM/FUCOMP/FUCOMPP—无序比较浮点值 FXAM—检查浮点 FXCH—交换寄存器内容 FXRSTOR—恢复x87 FPU,MMX,XMM和MXCSR状态 FXSAVE—保存x87 FPU,MMX技术和SSE状态 FXTRACT—提取指数和指标 FYL2X—计算y * log2x FYL2XP1—计算y * log2(x + 1) HADDPD—包装双FP水平添加 HADDPS—包装单FP水平添加 HLT—停 HSUBPD—压缩双FP水平减法 HSUBPS—打包单FP水平减法 IDIV—签名除法 IMUL—签名乘法 IN—从端口输入 INC—递增1 INS/INSB/INSW/INSD—从端口到字符串的输入 INSERTPS—插入标量单精度浮点值 INT n/INTO/INT 3—调用中断过程 INVD—无效内部缓存 INVLPG—使TLB条目无效 INVPCID—使过程上下文标识符无效 IRET/IRETD—中断返回 Jcc—如果条件满足则跳转 JMP—跳 KADDW/KADDB/KADDQ/KADDD—ADD两个面具 KANDW/KANDB/KANDQ/KANDD—按位逻辑和掩码 KANDNW/KANDNB/KANDNQ/KANDND—按位逻辑AND NOT掩码 KMOVW/KMOVB/KMOVQ/KMOVD—从和到掩码寄存器 KNOTW/KNOTB/KNOTQ/KNOTD—NOT屏蔽寄存器 KORW/KORB/KORQ/KORD—按位逻辑或掩码 KORTESTW/KORTESTB/KORTESTQ/KORTESTD—OR Masks And Set Flags KSHIFTLW/KSHIFTLB/KSHIFTLQ/KSHIFTLD—移位左掩码寄存器 KSHIFTRW/KSHIFTRB/KSHIFTRQ/KSHIFTRD—Shift右掩码寄存器 KTESTW/KTESTB/KTESTQ/KTESTD—打包位测试掩码和设置标志 KUNPCKBW/KUNPCKWD/KUNPCKDQ—解包掩码寄存器 KXNORW/KXNORB/KXNORQ/KXNORD—按位逻辑XNOR掩码 KXORW/KXORB/KXORQ/KXORD—按位逻辑异或掩码 LAHF—将状态标志加载到AH寄存器中 LAR—加载访问权限字节 LDDQU—加载未对齐的整数128位 LDMXCSR—加载MXCSR寄存器 LDS/LES/LFS/LGS/LSS—加载远程指针 LEA—加载有效地址 LEAVE—高级过程退出 LFENCE—负载栅栏 LGDT/LIDT—加载全局/中断描述符表寄存器 LLDT—加载本地jubu描述符表寄存器 LMSW—加载机器状态字 LOCK—置位LOCK#信号前缀 LODS/LODSB/LODSW/LODSD/LODSQ—加载字符串 LOOP/LOOPcc—根据ECX计数器循环 LSL—负载段限制 LTR—加载任务寄存器 LZCNT— 计数前导零位的数量 MASKMOVDQU—存储双字双字的所选字节 MASKMOVQ—存储选定的四字节字节 MAXPD—最大打包双精度浮点值 MAXPS—最大打包单精度浮点值 MAXSD—返回最大标量双精度浮点值 MAXSS—返回最大标量单精度浮点值 MFENCE—内存围栏 MINPD—最小包装双精度浮点值 MINPS—最小打包单精度浮点值 MINSD—返回最小标量双精度浮点值 MINSS—返回最小标量单精度浮点值 MONITOR—设置监视器地址 MOV—移动 MOVAPD—移动对齐打包的双精度浮点值 MOVAPS—移动对齐打包的单精度浮点值 MOVBE—在交换字节后移动数据 MOVD/MOVQ—移动双字/移动四字 MOVDDUP—复制双精度浮点值 MOVDQA,VMOVDQA32/64—移动对齐的打包整数值 MOVDQU,VMOVDQU8/16/32/64—移动未对齐的打包整数值 MOVDQ2Q—将四字从XMM移动到MMX技术寄存器 MOVHLPS—将打包的单精度浮点值从高到低移动 MOVHPD—移动高压缩双精度浮点值 MOVHPS—移动高度封装的单精度浮点值 MOVLHPS—将打包的单精度浮点值从低到高移动 MOVLPD—移动低压缩双精度浮点值 MOVLPS—移动低压缩单精度浮点值 MOVMSKPD—提取封装的双精度浮点符号掩码 MOVMSKPS—提取打包的单精度浮点符号掩码 MOVNTDQA—加载双字体非时间对齐提示 MOVNTDQ—使用非时间提示存储打包的整数 MOVNTI—使用非时间提示存储双字 MOVNTPD—使用非时间提示存储打包的双精度浮点值 MOVNTPS—使用非时间提示存储打包的单精度浮点值 MOVNTQ—使用非时间提示的四字存储 MOVQ—移动四字 MOVQ2DQ—将四字从MMX技术移动到XMM寄存器 MOVS/MOVSB/MOVSW/MOVSD/MOVSQ—将数据从字符串移动到字符串 MOVSD—移动或合并标量双精度浮点值 MOVSHDUP—复制单个FP值 MOVSLDUP—复制单个FP值 MOVSS—移动或合并标量单精度浮点值 MOVSX/MOVSXD—使用符号扩展移动 MOVUPD—移动非对齐打包的双精度浮点值 MOVUPS—移动不对齐打包的单精度浮点值 MOVZX—用零扩展移动 MPSADBW — 计算多个封装的绝对差的和 MUL—无符号乘法 MULPD—乘法封装的双精度浮点值 MULPS—乘法封装的单精度浮点值 MULSD—乘以标量双精度浮点值 MULSS—乘以标量单精度浮点值 MULX — 无符号乘法不影响标志 MWAIT—监视等待 NEG—二的互补阴性 NOP—无操作 NOT—一个补码阴性 OR—逻辑包含OR ORPD—压缩双精度浮点值的按位逻辑或 ORPS—压缩单精度浮点值的按位逻辑或 OUT—输出到端口 OUTS/OUTSB/OUTSW/OUTSD—输出字符串到端口 PABSB/PABSW/PABSD/PABSQ — 压缩绝对值 PACKSSWB/PACKSSDW—包含有符号饱和度 PACKUSDW—具有无符号饱和度的包 PACKUSWB—具有无符号饱和度的包 PADDB/PADDW/PADDD/PADDQ—添加打包的整数 PADDSB/PADDSW—添加带签名饱和度的打包签名整数 PADDUSB/PADDUSW—添加带有无符号饱和的打包的无符号整数 PALIGNR — 包装对齐 PAND—逻辑AND PANDN—逻辑AND NOT PAUSE—旋转环提示 PAVGB/PAVGW—平均打包整数 PBLENDVB — 可变混合打包字节 PBLENDW — 混合包装的词 PCLMULQDQ - 无载乘法四字 PCMPEQB/PCMPEQW/PCMPEQD— 比较打包数据以等于 PCMPEQQ — 比较打包的Qword数据 PCMPESTRI — 压缩比较显式长度字符串,返回索引 PCMPESTRM — 压缩比较显式长度字符串,返回掩码 PCMPGTB/PCMPGTW/PCMPGTD—比较打包签名的整数大于 PCMPGTQ — 比较打包数据大于 PCMPISTRI — 压缩比较隐式长度字符串,返回索引 PCMPISTRM — 压缩比较隐式长度字符串,返回掩码 PDEP — 平行位存款 PEXT — 平行位提取 PEXTRB/PEXTRD/PEXTRQ — 提取字节/双字/ Qword PEXTRW—提取 Word PHADDW/PHADDD — 包装水平添加 PHADDSW — 包装水平添加和饱和 PHMINPOSUW — 包装水平词最小 PHSUBW/PHSUBD — 打包水平减法 PHSUBSW — 包装水平扣除和饱和 PINSRB/PINSRD/PINSRQ — 插入字节/双字/ Qword PINSRW—插入字 PMADDUBSW — 乘法和添加打包签名和无符号字节 PMADDWD—乘法和添加打包整数 PMAXSB/PMAXSW/PMAXSD/PMAXSQ—最大打包签名整数 PMAXUB/PMAXUW—最大打包的无符号整数 PMAXUD/PMAXUQ—最大打包的无符号整数 PMINSB/PMINSW—最小打包签名整数 PMINSD/PMINSQ—最小打包签名整数 PMINUB/PMINUW—最小打包的无符号整数 PMINUD/PMINUQ—最小打包的无符号整数 PMOVMSKB—移动字节掩码 PMOVSX—包装移动与符号扩展 PMOVZX—带零扩展的打包移动 PMULDQ—乘以压缩双字整数 PMULHRSW — 包装高与圆和规模 PMULHUW—乘法打包的无符号整数和存储高结果 PMULHW—乘法打包签名整数和存储高结果 PMULLD/PMULLQ—乘以压缩整数和存储低结果 PMULLW—乘以打包的有符号整数和存储低结果 PMULUDQ—乘法打包的无符号双字整数 POP—从堆栈中弹出一个值 POPA/POPAD—弹出所有通用寄存器 POPCNT — 返回设置为1的位数计数 POPF/POPFD/POPFQ—弹出堆栈到 EFLAGS 寄存器 POR—按位逻辑或 PREFETCHh—预取数据到缓存 PREFETCHW—在写入预期中将数据预取到缓存中 PREFETCHWT1—将向量数据预取到具有意图写入和T1提示的高速缓存中 PSADBW—计算绝对差的和 PSHUFB — 打包的随机字节 PSHUFD—随机打包双字 PSHUFHW—随机包装高字 PSHUFLW—随机包装低字 PSHUFW—随机包装的词 PSIGNB/PSIGNW/PSIGND — 打包标志 PSLLDQ—移位双四字左逻辑 PSLLW/PSLLD/PSLLQ—移位数据打包左逻辑 PSRAW/PSRAD/PSRAQ—移位打包数据右算术 PSRLDQ—移位双四字右逻辑 PSRLW/PSRLD/PSRLQ—移位打包数据右逻辑 PSUBB/PSUBW/PSUBD—减去打包的整数 PSUBQ—减去打包的四字整数 PSUBSB/PSUBSW—减去带有符号饱和的打包有符号整数 PSUBUSB/PSUBUSW—使用无符号饱和度减去打包的无符号整数 PTEST- 逻辑比较 PTWRITE - 将数据写入处理器跟踪数据包 PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ— 解压高数据 PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ—解压低数据 PUSH—将字,双字或四字推到堆栈上 PUSHA/PUSHAD—推送所有通用寄存器 PUSHF/PUSHFD—将EFLAGS寄存器推送到堆栈 PXOR—逻辑异或 RCL/RCR/ROL/ROR—旋转 RCPPS—计算包装的单精度浮点值的倒数 RCPSS—计算标量单精度浮点值的倒数 RDFSBASE/RDGSBASE—读取FS / GS段基址 RDMSR—从模型专用寄存器读取 RDPID—读取处理器ID RDPKRU—读取用户页面的保护关键权限 RDPMC—读取性能监视计数器 RDRAND—读随机数 RDSEED—阅读随机SEED RDTSC—读取时间戳计数器 RDTSCP—读取时间戳计数器和处理器ID REP/REPE/REPZ/REPNE/REPNZ—重复字符串操作前缀 RET—从程序返回 RORX — 向右旋转逻辑而不影响标志 ROUNDPD — 圆形双精度浮点值 ROUNDPS — 圆形封装单精度浮点值 ROUNDSD — 圆形标量双精度浮点值 ROUNDSS — 圆形标量单精度浮点值 RSM—从系统管理模式恢复 RSQRTPS—计算压缩单精度浮点值的平方根的倒数 RSQRTSS—计算标量单精度浮点值的平方根的倒数 SAHF—将AH存储到标志 SAL/SAR/SHL/SHR—转移 SARX/SHLX/SHRX — 转移不影响标志 SBB—借用整数减法 SCAS/SCASB/SCASW/SCASD—扫描字符串 SETcc—在字段上设置字节 SFENCE—商店栅栏 SGDT—存储全局描述符表寄存器 SHA1RNDS4—执行四轮SHA1操作 SHA1NEXTE—计算四轮后的SHA1状态变量E. SHA1MSG1—对下四个SHA1消息双字执行中间计算 SHA1MSG2—对下四个SHA1消息双字执行最终计算 SHA256RNDS2—执行两轮SHA256操作 SHA256MSG1—对下四个SHA256消息双字执行中间计算 SHA256MSG2—对下四个SHA256消息双字执行最终计算 SHLD—双精度位移左 SHRD—双精度平移 SHUFPD—包装交错双精度浮点值对的随机 SHUFPS—Packed Interleave单精度浮点值四重串交替 SIDT—存储中断描述符表寄存器 SLDT—存储本地描述符表寄存器 SMSW—存储机器状态字 SQRTPD—双精度浮点值的平方根 SQRTPS—单精度浮点值的平方根 SQRTSD—计算平方根的标量双精度浮点值 SQRTSS—计算标量单精度值的平方根 STAC—在EFLAGS寄存器中设置AC标志 STC—设置进位标志 STD—设置方向标志 STI—设置中断标志 STMXCSR—存储MXCSR寄存器状态 STOS/STOSB/STOSW/STOSD/STOSQ—存储字符串 STR—存储任务寄存器 SUB—减去 SUBPD—减去打包的双精度浮点值 SUBPS—减去打包的单精度浮点值 SUBSD—减去标量双精度浮点值 SUBSS—减去标量单精度浮点值 SWAPGS—交换GS基址寄存器 SYSCALL—快速系统调用 SYSENTER—快速系统调用 SYSEXIT—从快速系统调用快速返回 SYSRET—从快速系统调用返回 TEST—逻辑比较 TZCNT — 计算零位的位数 UCOMISD—无序比较标量双精度浮点值并设置EFLAGS UCOMISS—无序比较标量单精度浮点值并设置EFLAGS UD2—未定义指令 UNPCKHPD—解包和交织高压双精度浮点值 UNPCKHPS—解包和交织高度封装的单精度浮点值 UNPCKLPD—解包和交织低压双精度浮点值 UNPCKLPS—解包和交织低压缩单精度浮点值 VALIGND/VALIGNQ—对齐双字/四字向量 VBLENDMPD/VBLENDMPS—使用OpMask控件的Blend Float64 / Float32向量 VBROADCAST—加载广播浮点数据 VPBROADCASTM—广播掩码到向量寄存器 VCOMPRESSPD—将稀疏压缩双精度浮点值存储到密集存储器中 VCOMPRESSPS—将稀疏打包的单精度浮点值存储到密集存储器中 VCVTPD2QQ—将打包的双精度浮点值转换为打包的四字整数 VCVTPD2UDQ—将打包的双精度浮点值转换为打包的无符号双字整数 VCVTPD2UQQ—将打包的双精度浮点值转换为打包的无符号四字整数 VCVTPH2PS—将16位FP值转换为单精度FP值 VCVTPS2PH—将Single-Precision FP值转换为16位FP值 VCVTPS2UDQ—将打包的单精度浮点值转换为打包的无符号双字整数值 VCVTPS2QQ—将打包的单精度浮点值转换为打包的有符号四字整数值 VCVTPS2UQQ—将打包的单精度浮点值转换为打包的无符号四字整数值 VCVTQQ2PD—将打包的四字整数转换为打包的双精度浮点值 VCVTQQ2PS—将打包的四字整数转换为打包的单精度浮点值 VCVTSD2USI—将标量双精度浮点值转换为无符号双字整数 VCVTSS2USI—将标量单精度浮点值转换为无符号双字整数 VCVTTPD2QQ—将截断打包的双精度浮点值转换为打包的四字整数 VCVTTPD2UDQ—转换为截断打包的双精度浮点值到打包的无符号双字整数 VCVTTPD2UQQ—将截断的双精度浮点值转换为打包的无符号四字整数 VCVTTPS2UDQ—将截断转换为打包的单精度浮点值到打包的无符号双字整数值 VCVTTPS2QQ—将截断转换为打包的单精度浮点值到打包的有符号四字整数值 VCVTTPS2UQQ—将截断转换为打包的单精度浮点值到打包的无符号四字整数值 VCVTTSD2USI—将截断的标量双精度浮点值转换为无符号整数 VCVTTSS2USI—将截断标量单精度浮点值转换为无符号整数 VCVTUDQ2PD—将打包的无符号双字整数转换为打包的双精度浮点值 VCVTUDQ2PS—将打包的无符号双字整数转换为打包的单精度浮点值 VCVTUQQ2PD—将打包的无符号四字整数转换为打包的双精度浮点值 VCVTUQQ2PS—将打包的无符号四字整数转换为打包的单精度浮点值 VCVTUSI2SD—将无符号整数转换为标量双精度浮点值 VCVTUSI2SS—将无符号整数转换为标量单精度浮点值 VDBPSADBW—对无符号字节的双块打包和绝对差(SAD) VEXPANDPD—从密集存储器加载稀疏压缩双精度浮点值 VEXPANDPS—从密集存储器加载稀疏打包的单精度浮点值 VERR/VERW—验证读取或写入的段 VEXP2PD—近似于指数2 ^ x的打包双精度浮点值,小于2 ^ -23相对误差 VEXP2PS—近似于包装的单精度浮点值的指数2 ^ x小于2 ^ -23相对误差 VEXTRACTF128/VEXTRACTF32x4/VEXTRACTF64x2/VEXTRACTF32x8/VEXTRACTF64x4—Extr act打包浮点值 VEXTRACTI128/VEXTRACTI32x4/VEXTRACTI64x2/VEXTRACTI32x8/VEXTRACTI64x4—提取打包的整数值 VFIXUPIMMPD—修复特殊打包的Float64值 VFIXUPIMMPS—修复特殊打包的Float32值 VFIXUPIMMSD—修复特殊标量Float64价值 VFIXUPIMMSS—修复特殊标量Float32价值 VFMADD132PD/VFMADD213PD/VFMADD231PD—熔丝乘法 - 加上双精度浮点值 VFMADD132PS/VFMADD213PS/VFMADD231PS—融合乘法 - 加上单精度浮点值 VFMADD132SD/VFMADD213SD/VFMADD231SD—熔丝乘加 - 标量双精度浮点值 VFMADD132SS/VFMADD213SS/VFMADD231SS—融合乘法 - 加上标量单精度浮点值 VFMADDSUB132PD/VFMADDSUB213PD/VFMADDSUB231PD—熔断乘法 - 交替加/减包装的双精度浮点值 VFMADDSUB132PS/VFMADDSUB213PS/VFMADDSUB231PS—封装单精度浮点值的融合乘法交替加法/减法 VFMSUBADD132PD/VFMSUBADD213PD/VFMSUBADD231PD—融合乘法交替减法/增加的双精度浮点值 VFMSUBADD132PS/VFMSUBADD213PS/VFMSUBADD231PS—融合乘法交替减法/添加的单精度浮点值 VFMSUB132PD/VFMSUB213PD/VFMSUB231PD—压缩双精度浮点值的乘法减法 VFMSUB132PS/VFMSUB213PS/VFMSUB231PS—压缩单精度浮点值的乘法减法 VFMSUB132SD/VFMSUB213SD/VFMSUB231SD—标量双精度浮点值的融合乘法 - 减法 VFMSUB132SS/VFMSUB213SS/VFMSUB231SS—标量单精度浮点值的融合乘减 VFNMADD132PD/VFNMADD213PD/VFNMADD231PD—熔丝负精度浮点值的乘积 - 加法 VFNMADD132PS/VFNMADD213PS/VFNMADD231PS—熔丝负精度浮点值的乘积 - 加法 VFNMADD132SD/VFNMADD213SD/VFNMADD231SD—熔丝负精度浮点值的乘积 - 加法 VFNMADD132SS/VFNMADD213SS/VFNMADD231SS—熔丝负精度浮点值的乘积 - 加法 VFNMSUB132PD/VFNMSUB213PD/VFNMSUB231PD—压缩双精度浮点值的负值乘法减法 VFNMSUB132PS/VFNMSUB213PS/VFNMSUB231PS—封装单精度浮点值的熔丝负负乘法 - 减法 VFNMSUB132SD/VFNMSUB213SD/VFNMSUB231SD—标量双精度浮点值的熔融负乘法 - 减法 VFNMSUB132SS/VFNMSUB213SS/VFNMSUB231SS—标量单精度浮点值的熔点负乘减 VFPCLASSPD—测试打包的Float64值的类型 VFPCLASSPS—测试打包的Float32值的类型 VFPCLASSSD—测试标量Float64值的类型 VFPCLASSSS—测试Scalar Float32值的类型 VGATHERDPD/VGATHERQPD — 使用有符号的双字/ Qword指数收集打包的DP FP值 VGATHERDPS/VGATHERQPS — 使用签名的双字/ Qword索引收集打包的SP FP值 VGATHERDPS/VGATHERDPD—收集包装单,包装双与签署双剑 VGATHERPF0DPS/VGATHERPF0QPS/VGATHERPF0DPD/VGATHERPF0QPD—稀疏预取打包SP / DP数据值与签名双字,签名的Qword指数使用T0提示 VGATHERPF1DPS/VGATHERPF1QPS/VGATHERPF1DPD/VGATHERPF1QPD—稀疏预取打包SP / DP数据值与签名双字,签名的Qword指数使用T1提示 VGATHERQPS/VGATHERQPD—收集包装单,包装双与签名的Qword指数 VPGATHERDD/VPGATHERQD — 使用签名的双字/ Qword指数收集打包的双字值 VPGATHERDD/VPGATHERDQ—收集包装双剑,包装的Qword和双重指数 VPGATHERDQ/VPGATHERQQ — 使用签名的双字/ Qword指数收集打包的Qword值 VPGATHERQD/VPGATHERQQ—收集包装双剑,包装的Qword与已签名的Qword指数 VGETEXPPD—将打包的DP FP值的指数转换为DP FP值 VGETEXPPS—将打包的SP FP值的指数转换为SP FP值 VGETEXPSD—将标量DP FP值的指数转换为DP FP值 VGETEXPSS—将标量SP FP值的指数转换为SP FP值 VGETMANTPD—从Float64 Vector中提取Float64 Vector of Normalized Mantissas VGETMANTPS—从Float32 Vector中提取Float32向量的Normalized Mantissas VGETMANTSD—从Float64标量提取Float64的规范化尾数 VGETMANTSS—从Float32向量提取标准化尾数Float32矢量 VINSERTF128/VINSERTF32x4/VINSERTF64x2/VINSERTF32x8/VINSERTF64x4—插入打包的浮点值 VINSERTI128/VINSERTI32x4/VINSERTI64x2/VINSERTI32x8/VINSERTI64x4—插入打包的整数值 VMASKMOV—条件SIMD打包荷载和商店 VPBLENDD — 混合包装双字 VPBLENDMB/VPBLENDMW—使用opmask控制的混合字节/字向量 VPBLENDMD/VPBLENDMQ—使用OpMask控件混合Int32 / Int64向量 VPBROADCASTB/W/D/Q—从通用寄存器加载广播整数数据 VPBROADCAST—加载整数和广播 VPCMPB/VPCMPUB—将打包的字节值比较到掩码中 VPCMPD/VPCMPUD—将打包的整数值与掩码进行比较 VPCMPQ/VPCMPUQ—将打包的整数值与掩码进行比较 VPCMPW/VPCMPUW—比较打包的词值到掩码 VPCOMPRESSD—将稀疏压缩双字整数值存储到密集存储器/寄存器中 VPCOMPRESSQ—将稀疏压缩四字整数值存储到密集存储器/寄存器中 VPCONFLICTD/Q—检测在打包的双字/ Qword值的向量内的冲突到密集存储器/寄存器中 VPERM2F128 — 允许浮点值 VPERM2I128 — 允许整数值 VPERMD/VPERMW—Permute打包双字/字元素 VPERMI2W/D/Q/PS/PD—两个表的完全权限覆盖索引 VPERMILPD—允许双精度浮点值对的内部通道 VPERMILPS—允许四精度浮点值的内部通道 VPERMPD—允许双精度浮点元素 VPERMPS—允许单精度浮点元素 VPERMQ—四字节元素置换 VPEXPANDD—从密集存储器/寄存器加载稀疏压缩双字整数值 VPEXPANDQ—从密集存储器/寄存器加载稀疏压缩四字整数值 VPLZCNTD/Q—计算打包双字,打包的Qword值的前导零位数 VPMASKMOV — 条件SIMD整数打包荷载和商店 VPMOVM2B/VPMOVM2W/VPMOVM2D/VPMOVM2Q—将屏蔽寄存器转换为向量寄存器 VPMOVB2M/VPMOVW2M/VPMOVD2M/VPMOVQ2M—将矢量寄存器转换为掩码 VPMOVQB/VPMOVSQB/VPMOVUSQB—Down将QWord转换为字节 VPMOVQW/VPMOVSQW/VPMOVUSQW—Down将QWord转换为Word VPMOVQD/VPMOVSQD/VPMOVUSQD—Down将QWord转换为DWord VPMOVDB/VPMOVSDB/VPMOVUSDB—Down将DWord转换为字节 VPMOVDW/VPMOVSDW/VPMOVUSDW—Down将DWord转换为Word VPMOVWB/VPMOVSWB/VPMOVUSWB—向下将字转换为字节 PROLD/PROLVD/PROLQ/PROLVQ—位向左旋转 PRORD/PRORVD/PRORQ/PRORVQ—位向右旋转 VPSCATTERDD/VPSCATTERDQ/VPSCATTERQD/VPSCATTERQQ—分散包装双字,带有符号双字的打包字,签名的Qword指数 VPSLLVW/VPSLLVD/VPSLLVQ—可变位移左逻辑 VPSRAVW/VPSRAVD/VPSRAVQ—可变位移右算术 VPSRLVW/VPSRLVD/VPSRLVQ—可变位移右逻辑 VPTERNLOGD/VPTERNLOGQ—按位三进制逻辑 VPTESTMB/VPTESTMW/VPTESTMD/VPTESTMQ—逻辑与和设置掩码 VPTESTNMB/W/D/Q—逻辑NAND和设置 VRANGEPD—对于Float64值的打包对的范围限制计算 VRANGEPS—对于Float32值的打包对的范围限制计算 VRANGESD—范围限制计算从一对Scalar Float64值 VRANGESS—从一对标量Float32值计算范围限制 VRCP14PD—计算压缩Float64值的近似倒数 VRCP14SD—计算标量Float64值的近似倒数 VRCP14PS—计算压缩Float32值的近似倒数 VRCP14SS—计算标量Float32值的近似倒数 VRCP28PD—近似于具有小于2 ^ -28相对误差的封装双精度浮点值的倒数 VRCP28SD—近似于标量双精度浮点值的倒数,小于2 ^ -28相对误差 VRCP28PS—近似于具有小于2 ^ -28相对误差的封装单精度浮点值的倒数 VRCP28SS—近似于标量单精度浮点值的倒数,小于2 ^ -28相对误差 VREDUCEPD—对压缩的Float64值执行压缩转换 VREDUCESD—对标量Float64值执行减少转换 VREDUCEPS—对已压缩的Float32值执行减少转换 VREDUCESS—对标量Float32值执行减少转换 VRNDSCALEPD—圆形压缩Float64值以包括给定数目的分数位 VRNDSCALESD—圆形标量浮点值包括给定数量的比特位 VRNDSCALEPS—圆形压缩Float32值以包括给定数目的分数位 VRNDSCALESS—圆形标量浮点值包括给定数量的比特位 VRSQRT14PD—计算压缩Float64值的平方根的近似倒数 VRSQRT14SD—计算标量Float64值的平方根的近似倒数 VRSQRT14PS—计算压缩Float32值的平方根的近似倒数 VRSQRT14SS—计算标量Float32值的平方根的近似倒数 VRSQRT28PD—近似于包装的双精度浮点值的倒数平方根,小于2 ^ -28相对误差 VRSQRT28SD—近似于标量双精度浮点值的倒数平方根,小于2 ^ -28相对误差 VRSQRT28PS—近似于包装的单精度浮点值的倒数平方根,小于2 ^ -28相对误差 VRSQRT28SS—近似于标量单精度浮点值的倒数平方根,小于2 ^ -28相对误差 VSCALEFPD—使用Float64值缩放打包的Float64值 VSCALEFSD—使用Float64值缩放Scalar Float64值 VSCALEFPS—使用Float32值缩放打包的Float32值 VSCALEFSS—使用Float32值缩放标量浮点32值 VSCATTERDPS/VSCATTERDPD/VSCATTERQPS/VSCATTERQPD—分散包装单,包装双与签署的双剑和指数 VSCATTERPF0DPS/VSCATTERPF0QPS/VSCATTERPF0DPD/VSCATTERPF0QPD—稀疏预取打包SP / DP数据值与签名双字,签名的Qword指数使用T0提示与意图写 VSCATTERPF1DPS/VSCATTERPF1QPS/VSCATTERPF1DPD/VSCATTERPF1QPD—稀疏预取打包SP / DP数据值与签名双字,签名的Qword指数使用T1提示与意图写 VSHUFF32x4/VSHUFF64x2/VSHUFI32x4/VSHUFI64x2—随机播放128位粒度的打包值 VTESTPD/VTESTPS—压缩位测试 VZEROALL—零所有YMM寄存器 VZEROUPPER—YMM寄存器的零上限位 WAIT/FWAIT—等待 WBINVD—回写并使缓存无效 WRFSBASE/WRGSBASE—写FS / GS段基 WRMSR—写入模型专用寄存器 WRPKRU—将数据写入用户页密钥寄存器 XACQUIRE/XRELEASE — 硬件锁Elision Prefix提示 XABORT — 事务中止 XADD—交换和添加 XBEGIN — 事务开始 XCHG—与寄存器交换寄存器/存储器 XEND — 事务结束 XGETBV—获取扩展控制寄存器的值 XLAT/XLATB—表查找翻译 XOR—逻辑异或 XORPD—压缩双精度浮点值的按位逻辑异或 XORPS—压缩单精度浮点值的按位逻辑异或 XRSTOR—恢复处理器扩展状态 XRSTORS—恢复处理器扩展状态主管 XSAVE—保存处理器扩展状态 XSAVEC—使用压缩保存处理器扩展状态 XSAVEOPT—保存处理器扩展状态优化 XSAVES—保存处理器扩展状态主管 XSETBV—设置扩展控制寄存器 XTEST — 测试如果在事务执行

 

 

AAA

 

未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition)格式: AAA功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中.

说明:1. 组合的十进制数和未组合的十进制数:在计算中,十进制数可用四位二进制数编码,称为BCD码.当一个节(8位)中存放一位BCD码,且放在字节的低4位, 高4位为时称为未组合的BCD码.2. AAA的调整操作若(AL) and 0FH>9 或 AF=1,则调整如下:(AL)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有