楼主: 发表于 2011-03-02 17:44 [回复5次/有效4个,浏览111次]
汇编略懂,看过基础教材两遍.不过不怎么用所以都不太熟悉.
事情起因是前几天做了一句char psz[] = "something";char ** p = (char**)&psz;
结果知道了数组名前加个&得到的还是数组地址.
在C语言里,就可以解释为数组名的某种特性,有人说到了汇编里一看就清楚了,但我OD什么的逆向不太行,所以还是上来问了...
C语言里的变量名什么的,编译以后在汇编下,都是些什么东西呢.
----------------------------------------------------------------------------------------------
2楼 发表于 2011-03-02 17:47
个人感觉变量名就是一个地址...之后以有指针.就是因为这些变量.首先是程序加入内存后地址不变二有址可寻...就是段地址加偏移地址......
数组名则是这个数组的起始地址...
data segment
a db 'fdafdaa',0
ends
说了那么多不知道我理解有没有问题.也不知看的人看得懂不....本人难得打字咯......
----------------------------------------------------------------------------------------------
4楼 发表于 2011-03-02 18:02
数组名会隐士转换。
----------------------------------------------------------------------------------------------
5楼 发表于 2011-03-02 18:22
变量编译后就都没名了,只是知道地址,以及操作反应出来的size。
----------------------------------------------------------------------------------------------
阅读(998) | 评论(0) | 转发(0) |