首页
社区
课程
招聘
请ROBA进来,还有几个问题
发表于: 2004-12-18 21:14 5621

请ROBA进来,还有几个问题

2004-12-18 21:14
5621
还是ROBA解释清楚,YES,thank you !!!
今后还有很多汇编上的问题要向ROBA多多学习,希望你不要觉得我太烦,我读了你很多文章,都非常经典,我会一如既往的支持你的!
还有下面几个问题:
**************************
d   dd   ?   
这三个到底有什么区别?
***************************
lea edi,dword ptr ds:[esi+410]
这一句是不是把[ESI+410]作为地址传送给EDI 了?
那么EDI 里面装的是地址还是地址里面的内容?
***************************
是不是在trw2000里面看到的全部都是十六进制的?
如果不是,那什么时候看到的是十进制?
***************************
SEH指的是什么?
***************************
谢谢ROBA给解释一下。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (15)
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
2
偶84RoBa

但是汇编学了很久了……

lea edi,dword ptr ds:[esi+410]

dword ptr ds:[esi+410]是指存放在地址为esi+410处的一个32位的数。这句的作用是将ds:[esi+410]处的一个32位数的地址放到EDI里。EDI里面装的是地址,EDI=esi+410

SEH指的是Structured Exception Handling,即“结构化异常处理”
2004-12-18 21:59
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
thank you !Structured Exception Handling具体有什么作用?
还有就是
**************************
d   dd   ?   
这三个到底有什么区别?
***************************
***************************
是不是在trw2000里面看到的全部都是十六进制的?
如果不是,那什么时候看到的是十进制?
***************************
2004-12-18 22:11
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
4
关于seh,请你搜索一下如何?其他的,等roba吧。

怀疑你第一个问题有问题。
d是13
dd是define double word,就是双字
?一般是未指定初始值的变量
2004-12-18 22:52
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
5
现在,类似于lea edi,dword ptr ds:[esi+410]
指令几乎失去了地址指向的意义,很多书中都说lea可以作为简单4则运算指令,你这句话,就是 edi = esi + 0x410
至于你说的什么时候是地址,什么时候是数据,单存拿出来一段数据,谁都不知道。其实内存中,没有地址,没有结构,没有类,有的只是数据。所谓的哪段数据是地址,哪段数据是结构等等,都是抽象的,只有在具体的环境才有他的意义。
2004-12-18 23:06
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
谢谢两位教导!
**************************
d   dd   ?   
我说的是这三个命令在trw2000里面,有时候用他们来观察寄存器的内容,到底有什么区别?
***************************
Nbw大哥,我糊涂了,你说内存里面没有地址,没有结构,没有类,有的只是数据。那么没有地址怎么样寻找地址?那不是乱套了?
在trw2000里面,有时候在数据区里面显示的是注册号(我们可以看懂的),有时候显示的我们都是乱码,或者问号,在vb中显示:1.2.3.4.5.6.7.8.9.0,而在别的里面是连续的:1234567890,这是怎么回事?在看教材的时候,有些时候说寄存器里面可以装地址,也可以装数据比如:01234567890要是太长,会不会装不下?
2004-12-19 01:22
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
7
我搞了将近1年才理解“没有地址,没有结构,没有类,有的只是数据”,你要是让我说为什么这样,我的确表达不出来。
但是你说的vb里面的那个数据格式,那是因为vb用的是unicode编码,不是ascII编码,你说的寄存器太长的问题是存在的,比如说目前,寄存器最长可以放32位。如果数据太长,就会发生溢出。
2004-12-19 03:41
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
8
最初由 nbw 发布
我搞了将近1年才理解“没有地址,没有结构,没有类,有的只是数据”,你要是让我说为什么这样,我的确表达不出来。


一年是长了点,还是祝贺你!

Everything is RAW!

这么说吧。什么结构,什么类只是说如何去理解RAW Data包含的信息。其实数据本身没有任何意义,关键是如何去理解它!就是拿你的理解往上面套!
2004-12-19 10:46
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
9
**************************
? 表达式  [计算一个表达式的值]
比如:mov eax,[999*ESI+465]
? 999*ESI+465,你就会知道是什么地址或数据
**************************
命令: D
作用: 显示某内存区域的内容
语法: D[size] [address [l length]]
用法:                
size: B 字节; W 字; D 双字D  ...
DD 就是双字显示!!!
而D  就是默认缺省DB,字节显示!!!
2004-12-19 11:03
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
论坛里面好人真不少,向上面几位道谢了,我会记住你上面几位好心人的,说实话在看雪论坛上面真的可以学到不少东西。
2004-12-19 11:53
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
? 表达式  [计算一个表达式的值]
比如:mov eax,[999*ESI+465]
那么“? 999*ESI+465“看到的应该是一个地址还是数据?
2004-12-19 11:58
0
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
12
自己试验,这个根据实际情况不同,nbw说过了。
2004-12-19 13:21
0
雪    币: 279
活跃值: (435)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
13
lea edi,dword ptr ds:[esi+410]
这句执行完后 edi 的内容是esi的值加上410
所谓数据和地址是相对而言的。你可以把这个值理解成地址,
也可以把这个值理解成数据。
听起来有点费解是不是:D ,自己试验一下就知道了。
例如 lea eax,[ebx+ecx]
2004-12-19 13:58
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
好的知道了,但是有时候看到的是乱码,这是怎么回事?
2004-12-19 15:01
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
15
这种LEA只是编译器自动生成的形式,要是人自己写汇编还是用MOV吧

啥乱码?你是说用?出来的吗,那是它把不可显示字符非得显示出来,所以就成乱码了:D
2004-12-19 15:39
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
哦,是这样,谢谢。
2004-12-19 16:41
0
游客
登录 | 注册 方可回帖
返回
//