汇编指令学习与总结CMP,TEST,JE,JNZ,JNE,LEA,MOVE,SUB,INC,DEC,ADD,MUL,DIV,JGE,JB ,CQD

汇编指令学习与总结CMP,TEST,JE,JNZ,JNE,LEA,MOVE,SUB,INC,DEC,ADD,MUL,DIV,JGE,JB ,CQD所有的汇编都是我零基础逆向微信汇编的指令边玩边学 左边有机器码 自己可以查位置 如有不对的地方请指出注明 一些指令的英文单词 并非官方 只是为了好记好理解 cmp compare 指令进行比较两个操作数的大小例 cmpoprd1 oprd2 为第一个操作减去第二个操作数 但不影响第两个操作数的值 它影响 flag 的 CF ZF OF AF PF 66E9419E66 833

注明:一些指令的英文单词,并非官方,只是为了好记好理解

注意:无符号数的比较用高于和低于,有符号数的比较用大于小于

1.cmp【compare】指令
进行比较两个操作数的大小

例:cmp oprd1,oprd2 // 执行oprd1-oprd2 操作,不过不保存结果,只影响标志位。 
66E9419A 85DB test ebx,ebx 66E9419C 74 64 je short WeChatWi.66E94202 //这两句含义为:ebx寄存器为空,就跳转 

3.JNZ【jump no Zero】与JNE【jump no Equals】
都依据ZF标志位(我经常叫做 零标志位,判断是不是0) 不为0/不等于时跳转执行
通俗来说: 这两条指令完全没区别! 它们对应于完全相同的机器代码,含义为ZF标志位不等于0 则执行




66E6F4C8 66:8338 00 cmp word ptr ds:[eax],0x0 66E6F4CC 75 05 jnz short WeChatWi.66E6F4D3 //这两句含义为eax寄存器不等于0则跳转 

4.LEA【load(加载) Effective(有效) Address(地址) 传送的是值
格式: LEA 操作数A, 操作数B
功能: 将操作数B的有效地址传送到指定的的某个寄存器,操作数A必须是寄存器
LEA AX,[SI],作用是将寄存器SI的






内容4567H当做数据传送给AX;
自我感觉来说:用来提升堆栈或者来获取某个值所对应的内存地址(有异议请评论区哈)

66E6F4B0 8D45 E0 lea eax,dword ptr ss:[ebp-0x20] //这句的意思时 将ebp寄存器的地址减去0X20 的 内存地址的值,赋值给eax寄存器 

5.MOV【move 】 传送的是地址
MOV指令是数据传送指令,用于将一个数据从源地址传送到目标地址(移动/赋值)

MOV AX,[SI],作用是将寄存器SI的内容4567H当做地址看待,将地址为4567H处的内容传送给AX;

66E6F94F 8941 08 mov dword ptr ds:[ecx+0x8],eax //将Eax寄存器的值 赋值给 ecx+0x8这个内存地址 指向的值 66E6F952 8BCE mov ecx,esi//将esi寄存器的32位数据传送到ecx寄存器 

6.ADD(加),SUB(减),MUL(乘),DIV(除) 原理一样

ADD ax,9 含义为 ax = ax+9 sub ax,9 含义为: ax = 9-ax sub ax,bx 含义为: ax = bx - ax 
mov ebx,3 //将3送入到 ebx寄存器 imul ebx // 只有一个源时,默认是 ebx 乘与 eax 

7.inc【increase 1 】,dec【decrease 1】
自增1,自减1

inc a 相当于 add a,1 //i++ 优点 速度比sub指令快,占用空间小 dec a 相当于 sub a,1 优点 速度比sub指令快,占用空间小 

8.jge【jump when greater or equal】大于或者等于
两个标志位sf和of 转移条件sf异或of=0

0040B780 cmp dword ptr [ebp-24h],1Eh 0040B784 jge main+40h (0040b790) //这两句的含义为 ebp-24H 大于等于1EH就执行跳转 

9.JB(jump not above and equal )低于,即不高于且不等于则转移

//假设 edx =A eax = 0, 跳转实现 00 . 3955 F0 cmp eax,edx 00 72 07 jb short 硬编码寻.00 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229804.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午3:50
下一篇 2026年3月16日 下午3:50


相关推荐

  • 大数据应用开发工程师,主要负责的工作内容有哪些?

    大数据应用开发工程师,主要负责的工作内容有哪些?如果我们把大数据应用看成一个嗷嗷待哺拥有无限潜力的婴儿,某一领域专业的海量的深度的数据就是喂养这个天才的奶粉。奶粉的数量决定了婴儿是否能长大,而奶粉的质量则决定了婴儿后续的智力发育水平。据数联寻英发布《大数据人才报告》显示,目前全国的大数据人才仅46万,未来3-5年内大数据人才的缺口将高达150万,越来越多人加入到大数据培训,都希望在大数据培训机构中学习最前沿的知识,找一份不错的工作。大数据应…

    2022年5月4日
    61
  • 如何在数学建模比赛中稳拿奖——个人100%获奖经验分享「建议收藏」

    1.和谁组队:2.负责算法的赛前准备:3.负责数据分析的赛前准备:4.负责论文的赛前准备:1.评委的评分方式2.优秀论文特点:

    2022年4月15日
    83
  • chip seq实验原理及步骤_思科真机实验环境搭建

    chip seq实验原理及步骤_思科真机实验环境搭建实验内容通过实验环境学习了解SR-PCE。xrv_7作为PCE,计算PE1到PE2的路径。网络中IP设置,metric值与之前的实验一致。拓扑图配置流程:配置SRGB在IGP(is-is)中使能segmentrouting和NodeID修改IGP和TE的链路metric配置PCE我们这次主要关注配置PCE的过程。前面的配置可以参考:SR-TEPolicy(思科)—-explicitpath实验SR-TEPolicy(思科)—-dynamicpath实验P

    2025年9月29日
    3
  • 1314,不远不近

    1314,不远不近-喂,2013年马上就要结束啦-哦-2014年就要来了噢-哦-元旦快乐,2014年一定要开开心心的呀-哦是不是应该写点什么来总结纪念已经过去的那一年啊拉开窗帘,打开窗,浅浅的阳光照进来,凉凉的风吹过,不冷也不热的天气,广州的一月就像春季已经到来了一样呢。正式的工作的这一年,渐渐适应朝九晚五的节奏,不再那么期待周五,也不会每逢周末就熬夜,慢慢的也…

    2022年6月7日
    32
  • 系统学习Pytorch笔记三:Pytorch数据读取机制(DataLoader)与图像预处理模块(transforms)

    系统学习Pytorch笔记三:Pytorch数据读取机制(DataLoader)与图像预处理模块(transforms)Pytorch官方英文文档:https://pytorch.org/docs/stable/torch.html?Pytorch中文文档:https://pytorch-cn.readthedocs.io/zh/latest/1.写在前面疫情在家的这段时间,想系统的学习一遍Pytorch基础知识,因为我发现虽然直接Pytorch实战上手比较快,但是关于一些内部的原理知识其实并不是太懂,这样…

    2022年4月28日
    54
  • MyBatis Log Plugin激活码买(注册激活)2022.02.23

    (MyBatis Log Plugin激活码买)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
    99

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号