汇编中CMP的作用
假设现在AX寄存器中的数是0002H,BX寄存器中的数是0003H。
执行的指令是:CMP AX, BX
执行这条指令时,先做用AX中的数减去BX中的数的减法运算。
列出二进制运算式子:
0000 0000 0000 0010
- 0000 0000 0000 0011
_________________________________
(借位1) 1111 1111 1111 1111
所以,运算结果是 0FFFFH
根据这个结果,各标志位将会被分别设置成以下值:
CF=1,因为有借位
OF=0,未溢出
SF=1,结果是负数
ZF=0,结果不全是零
还有AF, PF等也会相应地被设置。
CMP 比较指令做了减法运算以后,根据运算结果设置了各个标志位。
标志位设置过以后,0FFFFH这个减法运算的结果就没用了,它被丢弃,不保存。
执行过了CMP指令以后,除了CF,ZF,OF, SF,等各个标志位变化外,其它的数据不变。
对照普通的减法指令 SUB AX, BX,它们的区别就在于:
SUB指令执行过以后,原来AX中的被减数丢了,被换成了减法的结果。
CMP指令执行过以后,被减数、减数都保持原样不变。
汇编中CMP的作用的更多相关文章
- 汇编中 .fill 的作用
.fill 语法:.fill repeat, size, value 含义是反复拷贝 size个字节,重复 repeat 次, 其中 size 和 value 是可选的,默 ...
- 逆向知识第九讲,switch case语句在汇编中表达的方式
一丶Switch Case语句在汇编中的第一种表达方式 (引导性跳转表) 第一种表达方式生成条件: case 个数偏少,那么汇编中将会生成引导性的跳转表,会做出 if else的情况(类似,但还是能分 ...
- 汇编中PTR常见的几种用法
汇编中PTR的用法确实是令人比较头疼的,我特意搜集了一些PTR的应用实例,可以从例子中揣摩出规律: 1.MOV WORD PTR [DI],OFFSET BUF1 2.SUB BYTE ...
- 汇编中Enter与Leave指令
Enter的作用相当==push ebp和mov ebp,esp 这后面两句大家很熟悉吧?函数开始一般都是这两句 Leave的作用相当==mov esp,ebp和pop ebp 而这后面这两句也很常见 ...
- PC逆向之代码还原技术,第三讲汇编中加法的代码还原
目录 PC逆向之代码还原技术,第三讲汇编中加法的代码还原 一丶汇编简介 二丶高级代码对应汇编观看. 1.代码还原解析: 总结 PC逆向之代码还原技术,第三讲汇编中加法的代码还原 一丶汇编简介 在讲解加 ...
- web.xml中load-on-startup的作用
如下一段配置,熟悉DWR的再熟悉不过了:<servlet> <servlet-name>dwr-invoker</servlet-name> <ser ...
- C#中构造函数的作用
C#中构造函数的作用 共同点: 都是实例化对象,初始化数据的 默认构造是说所有的类都从祖先object那继承了空参的构造方法,你不写与写空参构造都存在,而有参数的构造一般是自己写的,写就有不写就没有, ...
- MySQL数据库中delimiter的作用概述
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...
- js中getBoundingClientRect的作用及兼容方案
js中getBoundingClientRect的作用及兼容方案 1.getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元素相对于视窗的位 ...
随机推荐
- thinkphp的PHPexecl表格样式设置
/** * 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要 * 打开对应行的注释. * 如果使用 Excel5 ,输出的内容应该是GBK编码. */ //require_o ...
- DD-WRT动态更新WAN口MAC
将代码在command窗口粘贴后,另存为startup,然后重启路由即可 #!/bin/ash MAC=`(date; cat /proc/interrupts) | md5sum | sed -r ...
- vmware搭建lnmp环境配置域名
找到nginx配置文件,修改server_name 然后找到/etc/hosts文件 修改成如下 之后在Windows本地的C盘的hosts文件中添加解析 好了,这样就可以访问了 通往牛逼的路上,在意 ...
- Android常见问题及解决方案收集
1.手机安裝Apk时提示“无法打开文件” 出现这个问题,是因为下载的服务端对APK的MIME类型设置错误导致,一般会设置为application/vnd.android,其实这是错误的,应该设置为ap ...
- InfluxDB时序数据库应用场景
目前了解到的InfluxDB时序数据库应用场景:如在数据库中有很多条记录,有的记录包含了时间字段time和数值字段water_level,有的只有时间字段time SELECT MAX("w ...
- R语言-画散点图
plot()函数 plot(cars$dist~cars$speed, # y~x main="XXX", ...
- uuid生成工具类
public class UUIDTool { public static String getUUID() { return UUID.randomUUID().toString().replace ...
- .sh_history文件的管理机制
来源:http://www.aixchina.net/Article/27258 字数 1056阅读 4365评论 1赞 0 内容提要: .sh_history是在ksh中用于存储用户在shell中输 ...
- scrapy 异步存储mysql
1.在setting中设置MySQL连接信息 HOST='101.201.70.139'MYSQL_DBNAME='anttest'MYSQL_PASSWORD='Myjr678!@#'MYSQL_U ...
- JMeter(二十二)与其它工具对比(转载)
转载自 http://www.cnblogs.com/yangxia-test JMeter工具的扩展性非常好. JMeter工具是开源的.开源不仅仅意味着免费,更重要的是意味着用户可以通过开放的源代 ...