| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1951 人关注过本帖
标题:求助 反汇编代码分析 的几点困惑
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:4 
求助 反汇编代码分析 的几点困惑
if @Version gt 510
.model FLAT
else
_TEXT    SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT    ENDS
_DATA    SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA    ENDS
CONST    SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST    ENDS
_BSS    SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS    ENDS
_TLS    SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS    ENDS
CRT$XCA    SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCA    ENDS
CRT$XCU    SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCU    ENDS
CRT$XCL    SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCL    ENDS
CRT$XCC    SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCC    ENDS
CRT$XCZ    SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCZ    ENDS
shared    SEGMENT DWORD USE32 PUBLIC ''
shared    ENDS
FLAT    GROUP _DATA, CONST, _BSS, CRT$XCA, CRT$XCU, CRT$XCL, CRT$XCC, CRT$XCZ, shared
    ASSUME    CS: FLAT, DS: FLAT, SS: FLAT

endif
VC6 得到的反汇编代码总是由上面这部分,这是不是说明
(1)在以前,_TEXT, _DATA, CONST, _BSS, CRT$XCA, CRT$XCU, CRT$XCL, CRT$XCC, CRT$XCZ, shared等段是由相应的 DWORD USE32 PUBLIC '****'指定,但是现在对于版本高于Version 510 的则在 .model FLAT 中定义了各个段地址?
(2)好像FLAT就是在386以后的机子上才使用的一个标号,为什么需要在 版本号 小于 Version 510 的时候也需要对齐定义,难道是为了程序的向后兼容性?

[[it] 本帖最后由 vfdff 于 2008-11-3 01:02 编辑 [/it]]
搜索更多相关主题的帖子: 段地址 分配 反汇编 
2008-11-03 00:47
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
学汇编就是为了最接近机器,你的执着我很感动,但是我真觉得你离真正的汇编越来越远。
对齐,在8086下不很重要,但是已经有了。
Flat——平面寻址,386保护模式下使用,这只是告诉编译连接程序生成的执行文件寻址模式的。
其实程序被分成很多段,是文件格式也是操作系统的要求。在保护模式的机器眼里,就是可写不可写的区别。

我们写汇编程序,无奈地要遵守操作系统规定的格式,因为可执行文件总是被操作系统加载的。假如你自己写一个操作系统,你会规定自己的可执行文件格式——这其实就是连接程序的任务。
收到的鲜花
  • zklhp2008-11-03 12:35 送鲜花  50朵  

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-03 05:34
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
[bo][un]cnhanxiao[/un] 在 2008-11-3 05:34 的发言:[/bo]

学汇编就是为了最接近机器,你的执着我很感动,但是我真觉得你离真正的汇编越来越远。
对齐,在8086下不很重要,但是已经有了。
Flat——平面寻址,386保护模式下使用,这只是告诉编译连接程序生成的执行文件寻址模 ...


版主一针见血,楼主朋友的大部分问题,都是很模糊,似乎在钻牛角尖,但实际却是毫无章法,很多都是毫无意义的问题.对楼主的不少回帖当中,我都是说,要系统的看下相关知识,如果要学习偏底层知识,要从基础的汇编学起. 楼主似乎在以C/C++为基础向偏底层学习,也很想了解实现的细节,但是方法不得当,还是建议,要循序渐进,系统深入学一下win32汇编, 选本好的教材,精读. 磨刀不误砍柴工.
收到的鲜花
  • zklhp2008-11-03 12:35 送鲜花  50朵   附言:好文章

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2008-11-03 10:25
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
两位分析的透彻 偶就不多说了 呵呵
2008-11-03 12:42
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
恩,谢谢楼上几位指正

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-11-03 20:51
快速回复:求助 反汇编代码分析 的几点困惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019553 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved