test eax eax

一般
if (a)
{
   a = 0;
}
else
{
   a++;
}

会生成
TEST EAX, EAX
JZ lb1    ;如果EAX为0则跳转到lb1
XOR EAX, EAX
RET
lb1:
INC EAX

即TEST后常用JZ, JNZ跳转指令
TEST EAX, EAX 则是将EAX与EAX进行与运算并设置标志位ZF但不把结果送回EAX

补充一下:test和and一样是进行位运算的与操作,即把eax换成二进制进行每一位的与操作,

那么当eax不为0的时候,test的结果肯定不为0,只有eax为0时才为0,于是根据位运算设置标志位,

zf的值0或非0;

转载于:https://my.oschina.net/u/3323876/blog/860529

关于test eax eax相关推荐

  1. xor eax,eax

    xor eax,eax 异或运算,操作数两数相反为1:两数相同为0.由于这两个数相同,异或后等于清0 要比mov eax,0效率高

  2. test dword ptr [eax],eax ; probe page.

    局部数组变量定义超过所分配的最大空间 ----------------------------------- Posts Tagged 变量 局部数组变量定义所分配的最大空间为多少?如何设置大小 有两 ...

  3. 关于sbb eax, eax以及sbb eax, 0FFFFFFFFh指令连用

    首先来看看sbb指令到底是用来干嘛的: sbb是带借位减法指令,它利用了CF位上记录的借位值. 指令格式:sbb 操作对象1, 操作对象2 功能:操作对象1=操作对象1 - 操作对象2 - CF 比如 ...

  4. TEST EAX,EAX作用

    test eax,eax je xxxxxxxx test指令的操作是将目的操作数和源操作数按位与,运算结果不送回目的操作数,然后根据结果设置SF,ZF,PF标志位,并将CF和OF标志位清零,一般下面 ...

  5. sub eax, _PAGESIZE; decrease by PAGESIZE test dword ptr [eax],eax ; probe page

    ; Find next lower page and probe cs20:sub eax, _PAGESIZE_ ; decrease by PAGESIZEtest dword ptr [eax] ...

  6. xorl %eax, %eax

    这是GNU的汇编 xorl    %eax, %eax(这句起什么作用) 按位异或,相同的位置为0,不同的位置为1,eax和eax的每一位都相同,所以相当于清零.         movl    8( ...

  7. 关于 TEST EAX,EAX

    = 问题 =   在一些破解的文章中,会出现下面的情况 :00401098 50 push eax :00401099 8BCF mov ecx, edi :00401056 52 push edx ...

  8. 堆栈溢出问题 调试到位置(test dword ptr [eax],eax ; probe page.)

    今天在写一个柜外清程序的时候,碰到一个很怪异的问题,调试程序的位置为:test dword ptr [eax],eax ; probe page.编译时没有错误,但是debug时就会跳出此问题. 经过 ...

  9. test %eax %eax

    今天反汇编碰见了cmp test and几个指令作为跳转的条件有一些弄混了,所以来详细了解一下这几个指令的区别. 首先详细了解该指令的时候需要首先熟悉几个标志位,在and指令按位逻辑与两个操作数(ac ...

最新文章

  1. 实现一个 能在O(1)时间复杂度 完成 Push、Pop、Min操作的 栈
  2. cxf实现webservice
  3. 重写equals方法的hashcode_Java equals 和 hashCode 的这几个问题可以说明白吗?
  4. Spark on Yarn集群多Application并行执行
  5. webbrowser载入地图网页出现脚本错误解决
  6. 【工业4.0】什么是工业4.0,这篇文章讲得明明白白!
  7. Navicat 用ssh通道连接时总是报错 (报错信息:SSH:expected key exchange group packet form serve...
  8. POJ NOI MATH-7826 分苹果
  9. php如何实现文件操作,php实现操作文件的各种方式总结(附代码)
  10. 超级全面的MySQL优化面试解析
  11. matlab三角二倍角公式,数学三角函数常用的二倍角公式
  12. MySQL无法启动,服务没有报告任何错误
  13. android killer java_android killer无法查看java源代码的解决方法
  14. git rebase——分支变基及变基的风险
  15. Mac环境下简化ssh连接vlab口令实现免密登录(UNSW)
  16. php 实现 pacs 系统,知名PACS系统VC源码
  17. Excel如何过滤座机号提取出手机号码
  18. 竞赛——【蓝桥杯】2022年11月第十四届蓝桥杯模拟赛第一期Python
  19. 傲娇亚马逊AWS与特色中国的四年大博弈
  20. calendar.getActualMaximum(calendar.DAY_OF_MONTH)的坑点

热门文章

  1. 是真正的发现,还是可耻的堕落?
  2. vbox虚拟机上装了银行的网络认证软件后不能正常使用的问题
  3. 【设计模式】简单工厂模式+工厂方法模式+抽象工厂模式
  4. 法官的假发是用来吓人的?
  5. d954(D9546)
  6. 频繁用电脑打字 武汉大三女生求职提笔忘字
  7. 卷积神经网络实现手写数字集
  8. 计算机组成原理百道必考大总结(下)
  9. 解析GMAT语法中主谓一致知识点
  10. 后端修行 - java中PO、VO、BO、POJO、DAO、DTO、TO、QO的理解