社区
孙冉的课程社区_NO_1
汇编语言入门教程
帖子详情
13.test,cmp指令
游戏逆向
2023-01-13 02:06:35
课时名称
课时知识点
13.test,cmp指令
13.test,cmp指令
...全文
176
回复
打赏
收藏
13.test,cmp指令
课时名称课时知识点13.test,cmp指令13.test,cmp指令
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
汇编
test
指令
和
cmp
指令
test
指令
将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。
test
命令的两个操作数不会被改变。运算结果在设置过相关标记位后会被丢弃。影响的标志位CF,ZF,OF,SF,PF
cmp
指令
比较
指令
。
cmp
的功能相当于减法
指令
,只是对操作数之间运算比较,不保存结果。
cmp
指令
执行后,将对标志寄存器产生影响。其他相关
指令
通过识别这些被影响的标志寄存器位来得知比较结果。影响的标志位CF,ZF,OF
汇编学习之《
test
,
cmp
指令
》
它和逻辑与(and)计算方式是一样,他们两个的区别,and 会改变对象的值,
test
指令
不会改变,但是它会改变EFL标志寄存器的ZF零位标记的值。实际上是做的减法运算,与算数sub运算
指令
的区别是,
cmp
指令
不改变作用对象的值,但还是会改变EFL标志寄存器的ZF标志位。其实:
cmp
eax,1 可以用来判断 eax 和 后面的数字是否相等,比如 ZF 位是1表示相等,否则不是。这里可以看到 eax 变成了0, EFL 标志寄存器的ZF零标志位被设置成了1(零 zf=1, 非零=0)可以看到eax的值变了。
汇编中的
test
和
cmp
指令
看过破解教程,都知道
test
,
cmp
是比较关键,可是我一直不清楚它们究竟是怎么比较的,最后下决心找了很多资料,和大家一起把它们弄清楚. 首先看看:状态寄存器(即标志寄存器) PSW(Program Flag)程序状态字(即标志)寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成, 如下所示: 15 14
13
12 11 10 9 8 7 6 5 4 3 2
比较
指令
---
cmp
,
test
CMP
指令
比较
指令
CMP
(CoMPARE) 格式:
CMP
OPRD1,OPRD2 功能:对两数进行相减,进行比较
test
指令
测试
指令
格式:
TEST
OPRD1,OPRD2 功能:其中OPRD1,OPRD2的含义同AND
指令
一样,也是对两个操作数进行按位的‘与’运算,唯一的不同之处是不将‘与’的结果送目的操作数,即本
指令
对两个操作数的内容均不进行修改,仅是在逻辑与操作后,对标志位重新置位 ...
汇编
指令
之
CMP
,
TEST
指令
一、
CMP
指令
这一块呢,我不想上图了,汇编的博文我已经快要让我写吐了,其实也有好多我没有补充进来,比如进制,LEA
指令
,数据宽度,有符号,无符号的区分等等,但我真的要吐了,这些玩意我已经不是第一次写了,也不是第一次看了,以前我是习惯于在EXCEL上写,这一次由于是我对汇编遗忘的有点狠,想从头复习一遍,刚好把这个复习的过程上传到博客园来,于是就有了这些文章,这两条
指令
,如果有兴趣,大家...
孙冉的课程社区_NO_1
1
社区成员
172
社区内容
发帖
与我相关
我的任务
孙冉的课程社区_NO_1
游戏逆向更多视频www.yxfzedu.com
复制链接
扫一扫
分享
社区描述
游戏逆向更多视频www.yxfzedu.com
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章