TC官方合作论坛

 找回密码
 立即注册
查看: 1877|回复: 4

【内存教程】标志寄存器。流程控制语句的反编译

[复制链接]
发表于 2021-6-18 15:44:44 来自手机 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 剑仙十号 于 2021-7-24 15:01 编辑

标志寄存器。流程控制的反编译
 
学内存教程,先要学标志寄存器。
ZF, SO, OF…………
汇编。跳转指令,jle,红线表示跳转成立,白线跳转不成立。
JLE 与 JNG同义:(SF ^ OF) | ZF。
即跳转成立的条件:ZF=1 or SF!=OF。
汇编。跳转指令,jge 往上跳转。
  
再学习普通寄存器。ebx, ecx, edx, eax…………eax用来储存子程序的返回值。
 
flag(标志)寄存器共有16位
flag的1、3、5、12、13、14、 15位在8086CPU中没有使用,不具有任何含义。
0、2、4、6、
7、8、9、10、11位都具有特殊含义。
【图片1】
【图片2】

equal below above
equal ==  [ˈiːkwəl]
below <  [bəˈlo] 由b打头的,都是重音在中间。
above > [əˈbʌv] 由a打头的,都是重音在中间。
no below >= nb
no above <= na
 
ZF, 它是flag 的第 6 位,是零标志位。
记录相关指令执行后,结果是否为 0,
0标志位 = 1,则两数 运算结果为0,两数相等.
0标志位 = 0,则两数 运算结果为?,两数不相等.
记住有个东西,是记录运算结果,相等 或不相等的就行了。

cmp 是比较指令,相当于减法指令,不保存减法结果。
格式:cmp eax, eax
功能:做 (eax)-(eax) 的运算,但只在ZF中保存标志结果,并不在 eax 中保存运算结果。
通过 cmp汇编指令执行后,相关标志位的变化:
 
cmp eax, 操作数
//根据运算结果,在ZF写入标志.
//若ZF=1(表示本次运算结果为0。)
jnz **内存地址 //(jump if 运算结果 not zero),汇编语言中的条件转移指令。
…………
…………
…………
…………
游客,如果您要查看本帖隐藏内容请回复
-30ef7303503edf60.jpg
1172ee08fd1a1ceb.jpg
回复

使用道具 举报

 楼主| 发表于 2021-6-18 15:48:12 来自手机 | 显示全部楼层
本帖最后由 剑仙十号 于 2022-2-24 04:04 编辑

二楼,更新信息专用。
tc简单开发_兴趣群:
143358382 (497/500)

tc简单开发_爱好群:
433286131 (498/500)

tc简单开发_高级群:
858091293 (91/500)

编程四大F:
1、流程控制,2、变量和数组,
3、函数多线程,4、系统 api函数。
本群大神众多,新手众多,群文件内_资源海量。希望新手分享 更多的学习笔记,减少重复造轮子的时间。
回复 支持 反对

使用道具 举报

发表于 2021-6-18 18:38:23 | 显示全部楼层
xx xx学习学习学习
回复 支持 反对

使用道具 举报

发表于 2021-6-22 09:24:23 | 显示全部楼层
9999999999999
回复 支持 反对

使用道具 举报

发表于 2021-6-23 10:58:42 | 显示全部楼层
与客厅的开头语看一看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-4-20 00:30 , Processed in 0.035601 second(s), 25 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表