test指令是怎么判断一个数和0的大小的

 

如果一个数是0,那么这个数和它本身与之后的结果还是它本身,运算结果是0,那么就会置ZF为1。

如果一个数是正数,那么这个数和它本身与之后的结果还是它本身。不会置ZF和SF为1

如果一个数是负数,那么这个数和它本身与之后的结果还是它本身,会置SF为1.

所以通过标志位就能区分开一个数是大于0等于0还是小于0

 

经常能看到test eax ,eax这种指令,意思就是看它和0的大小。

posted @ 2021-09-26 13:05  eatwhat  阅读(264)  评论(0编辑  收藏  举报