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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容