Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1322344
  • 博文数量: 482
  • 博客积分: 13297
  • 博客等级: 上将
  • 技术积分: 2890
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-12 16:25
文章分类

全部博文(482)

文章存档

2012年(9)

2011年(407)

2010年(66)

分类: WINDOWS

2011-09-25 22:22:41

 
楼主: 发表于 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。
----------------------------------------------------------------------------------------------
====
 
阅读(991) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~