汇编笔记四【JCC】 by:凉游浅笔深画眉 / Net7Cracker

一、JMP指令:无条件跳转指令,本质是修改EIP的值,改变CPU运行路线

  MOV EIP,寄存器/立即数  简写为 JMP 寄存器/立即数

二、CALL指令:

  PUSH 地址B

  MOV EIP , 地址A/寄存器  简写为:CALL 地址A/寄存器

三、RET指令:返回指令

  相当于POP EIP,并改变CPU运行路线到EIP所指向的值。

四、CMP指令:比较指令

  格式:CMP R/M R/M/IMM

  该指令是比较两个操作数,实际上相当于SUB指令,但是相减的结果并不保存到第一个操作数中,仅影响ZF标志位。

  当两个数相同时,0标志位为1.不同时为0.

五、TEST指令:与指令

  指令格式:TEST R/M,R/M/IMM

  两个数进行与操作,结果不保存,仅改变相应标志位

  例:

    TEST EAX,EAX

    通常用来判断EAX是否为空

六、JE,JZ(结果为0时跳转,相等时跳转)

  跳转前提:ZF=1

  JE:JUMP IF EQUEL

  JZ:JUMP IF ZERO

七、JNE,JNZ(结果不为0时则跳转,不相等则跳)

  跳转前提:ZF=0

  JNE:JUMP IF NOT EQUEL

  JNZ: JUMP IF NOT ZERO

八、JS(结果为负则跳转)

  跳转前提:SF=1

  JS:JUMP IF SIGN

九、JNS(结果为非负则跳转)

  跳转前提:SF=0

  JNS:JUMP IF NOT SIGN

十、JP,JPE(结果中1的个数为偶数则跳转)

  跳转前提:P=1

  JP:JUMP IF PARITY

  JPE:JUMP IF PARITY EQUEL

十一、JNP,JPO(结果中1的个数为偶数则跳转)

  跳转前提:PF=0

十二、JO(结果溢出了则跳转)

  跳转前提:OF=1

十三、JNO(结果没有溢出则跳转)

  跳转前提:OF=0

十四、JB,JNAE(小于则跳转[无符号数])

  跳转前提:CF=1

十五、JNB,JAE(大于等于则跳转[无符号数])

  跳转前提:CF=0

十六、JBE,JNA(小于等于则跳转[无符号数])

  跳转前提:CF=1 or ZF=1

十七、JNBE、JA(大于则跳转[无符号数])

  跳转前提:CF=0 and ZF=0

十八、JL,JNGE(小于则跳转[有符号数])

  跳转前提:SF != OF

十九、JNL,JGE(大于等于则跳转[有符号数])

  跳转前提:SF = OF

二十、JLE,JNG(小于等于则跳转[有符号数])

  跳转前提:ZF=1 or SF != OF

二十一、JNLE,JG(大于则跳转[有符号数])

  跳转前提:ZF=0 and SF = OF

时间: 2024-10-12 22:41:36

汇编笔记四【JCC】 by:凉游浅笔深画眉 / Net7Cracker的相关文章

SE壳C#程序-CrackMe-爆破 By:凉游浅笔深画眉 / Net7Cracker

[文章标题]: [SE壳C#程序-CrackMe-爆破]文字视频记录![文章作者]:  凉游浅笔深画眉[软件名称]: CM区好冷清,我来发一个吧!小小草莓[下载地址]: http://www.52pojie.cn/thread-243089-1-1.html[加壳方式]: SE壳[使用工具]: OD+WinHex+CFF Explorer[作者声明]: 只是感兴趣,没有其他目的.失误之处敬请诸位大侠赐教!思路来自吾爱大牛:Pnmker的教程谢谢!-------------------------

汇编笔记四【标识寄存器】 by:凉游浅笔深画眉 / Net7Cracker

一.push xxxxx指令和ESP的关系 ESP的值,是由Push指令后面的操作数的宽度决定的.也就是xxxxx的宽度,假如Puh后面跟的是一个立即数,由于整数是四字节,所以esp-4. 假如Push 后面跟的是容器,那么就看这个容器的宽度. 例:假如目前ESP的值是FFFFFFFF 当PUSH 1 这条指令执行后,ESP=FFFFFFFB,因为1是个立即数,只要Push后面是立即数,那么ESP的值就会减4 例:假如目前ESP的值是FFFFFFFF 当PUSH ax 这条指令执行后,ESP=F

jQuery Mboile Demo By:凉游浅笔深画眉

Effect:         jQuery Mobile is a HTML5-based user interface system designed to make responsive web sites and apps that are accessible on all smartphone, tablet and desktop devices.jQuery Mobile framework takes the "write less, do more" mantra

IL字节码解码工具 v1.0.1 By:凉游浅笔深画眉 一蓑烟雨原创出品 www.unpack.cn

★aUCfL6qt94cxO+V02XKg6AXLmWdV5E2tB5riuBmwto7Birqes2cnCbZQyVl2i5qiHn/MCzD36P+cjF+WQ3aVZq5Qs6q6X6A0+dK48vABfB6a1k/fbbjz75sSRLOvkQqELCtiLXCoXItGhP9v5VFSVN85xm15hiWv/nP94EObqNh8uDQT6dlcK6DFlgaAlYjTE1NzpOvfQEOZ9NGw/FXjw6hKGuZFxPFiGd8Y13NmK/xw/SoFed6HQoW5b

.NET平台原理调试分析【一】WinDBG+OllyDBG by:凉游浅笔深画眉

我在.NET平台诞生了12年后才接触到它,而国内.NET平台的逆向技术兴起于10年前. 我是不幸的,不幸的是起步比前辈们晚了10年左右,十分后悔当初把最好的学习时间奉献给了游戏.最后发现,玩再多游戏也并没什么卵用. 我也是幸运的,幸运的是前人已留下了太多对.NET平台的探索脚印.我只需要跟随着他们的脚步快速前进,而不会绕很多弯路和四处碰壁. 最后感谢那些写过文章供后人学习的前辈们,虽然很多文章都是七八年前的,但受用至今. 此文既不是破解,也不讲脱壳,只是逆向角度分析.NET程序执行原理.仅希望抛

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能

Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能 说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小demo给大家提供一个思路 先看一下效果 点击英文  变成英文状态点chinese就会变成中文                          源码的下载地址在文章的最下边 多语言用的是资源文件建

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

小猪的数据结构学习笔记(四)

小猪的数据结构学习笔记(四) 线性表之静态链表 --转载请注明出处:coder-pig 本章引言: 在二,三中中我们分别学习了顺序表中的线性表与单链表,线性表有点类似于 我们前面所学的数组,而单链表使用的最多的是指针,这里问个简单的问题, 如果是在以前没有指针的话,前辈先人们怎么实现单链表呢?大家思考下! 没有指针,那么用什么来代替呢?前辈先人们非常机智,想出了使用下标+游标的方式 来实现单链表的效果!也就是今天要讲的--静态链表! 当然你也可以直接跳过本章,因为有了单链表就没有必要用静态链表了