JCC常用指令1

CMP指令

指令格式

CMP R/M,RM/IMM

该指令是比较两个操作数,实际上,它相当于SUB指令。但是相减的结构并不保存到第一个操作数中。只是根据相减的结果改变零标志位的,当两个操作数相等的时候,零标志位置1.

MOV EAX,100
MOV ECX,100
CMP EAX, ECX                观察Z位(零标志ZF(Zero Flag):零标志ZF用来反映计算结果是否位0 ,如果运算结果位0,在判断结果是否为0时,可使用此标志位。)

MOV EAX,100
MOV ECX,100
CMP EAX,ECX    观察S位(符号标志位SF用来反映运算结构的符号位,他与运算结果的最高位相同。)
CMP AX,WORD PTR DS:[XXXXX]
CMP AL,BYTE PTR DS:[XXXXX]

TEST指令:

指令格式

TEST R/M,R/M/IMM

该指令在一定程序上和CMP指令时类似的。两个数值进行与操作,结果不保存。但是会改变相应标志位与的操作

1 and 1 = 1
1 and 0 = 0
0 and 1 = 0
0 and 0 = 0

常见用法:用这个指令,可以确定某寄存器是否等于0

TEST EAX,EAX            观察Z位

但是如果EAX的二进制某些为1的话,那么运算结果就不为0

你可能感兴趣的:(JCC常用指令1)