遇到不懂的指令,不用到网上查,自己用OD测试一下就知道了。
neg a
neg指令执行的操作是把a的每个二进制位取反之后再加1。效果就是数学上的求相反数,比如neg 3的结果就是-3,neg -3的结果就是3. neg 0的结果就是0
看一下可以法线,如果a不等于0,那么neg a之后的结果也不等于0,也就是说ZF不置1,如果a等于0,那么neg a之后的结果等于0,也就是数ZF要置1.
所以neg指令是可以区分一个操作数是0,还是非0。
这条指令也可以用来简化分支流程。
2024-02-28 09:03:52
遇到不懂的指令,不用到网上查,自己用OD测试一下就知道了。
neg a
neg指令执行的操作是把a的每个二进制位取反之后再加1。效果就是数学上的求相反数,比如neg 3的结果就是-3,neg -3的结果就是3. neg 0的结果就是0
看一下可以法线,如果a不等于0,那么neg a之后的结果也不等于0,也就是说ZF不置1,如果a等于0,那么neg a之后的结果等于0,也就是数ZF要置1.
所以neg指令是可以区分一个操作数是0,还是非0。
这条指令也可以用来简化分支流程。