首页
社区
课程
招聘
请问这几句汇编是什么意思?
发表于: 2006-11-23 18:16 5802

请问这几句汇编是什么意思?

2006-11-23 18:16
5802
1、retn
2、rep stos dword ptr es:[edi]
3、shr ecx,2
4、leave
5、shl ecx,8
今天先问这5个先谢了。。。。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 272
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
最初由 wutoudiyu 发布
1、retn
2、rep stos dword ptr es:[edi]
3、shr ecx,2
4、leave
5、shl ecx,8
........

1.ret n 是这样吧?
这个指令意思是返回到当前堆栈N位前的CS和IP(如果段内转移,就只有IP)
2.stos是置字符串数据指令(Store String Instruction),该指令是把寄存器AL、AX或EAX中的值存于以指针ES:DI所指向内存单元为起始的一片存储单元里,并根据标志位DF对寄存器DI作相应增减。该指令不影响任何标志位。
前面的rep 是重复前缀指令REP(Repeat String Instruction),循环次数是CX的值,具体来看,重复前缀指令的执行步骤如下:

(1)、判断:CX=0;
(2)、如果CX=0,则结束重复操作,执行程序中的下一条指令;
(3)、否则,CX=CX-1(不影响有关标志位),并执行其后的字符串操作指令,在该指令执行完后,再转到步骤(1)。
3.shr是逻辑右移,意思是对目标进行按位移,8086里面,移位数如果大于1位就要放在CL里面。以后直接可为1-31对于本例,如果操作前ecx=01010101010101010101010101010101,操作后则ecx=000010101010101010101010101010101,因为逻辑移位是要在移出位置补0的
4.我不晓得
5.逻辑左移,据3.举一反三得
2006-11-23 18:36
0
雪    币: 272
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学的是8086,不好意思哈,手头缺乏汇编的书,哪位老大详解贴上~
2006-11-23 18:40
0
雪    币: 2506
活跃值: (1000)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
4
1、retn 是指近返回。后面的那个n意思是near。OD默认选项下常见。可以通过调试选项->命令->使用 RET 代替 RETN 来修改。
4、leave 释放堆栈框架指令。与建立堆栈框架指令ENTER相反。用于释放当前子程序在堆栈中的局部变量,使EBP和ESP恢复为最近一次调用ENTER指令前的值。此指令只负责释放堆栈框架,不实现返回。
建议到intel的主页上找份指令参考看看,上面说得非常详细。可以到这个页面下载指令手册:
http://www.intel.com/products/processor/manuals/index.htm
2006-11-23 19:20
0
游客
登录 | 注册 方可回帖
返回
//