最近学习汇编语言,结合之前学习的C#,有一些疑惑,还请各位前辈解惑!
int i1 = 1;
00000062 mov dword ptr [ebp-3Ch],1
int i2 = i1;
00000069 mov eax,dword ptr [ebp-3Ch]
0000006c mov dword ptr [ebp-40h],eax
C#中说整型是值类型,上面这个很好理解,就是将1存入到 [ebp-3Ch]这块内存空间,再将 [ebp-3Ch]这块内存空间的值赋给 [ebp-40h]这块内存空间。
string s1 = "Hello";
0000006f mov eax,dword ptr ds:[03372088h]
00000075 mov dword ptr [ebp-48h],eax
s2=s1;
00000078 mov eax,dword ptr [ebp-48h]
0000007b mov dword ptr [ebp-44h],eax
C#里面说字符串是引用类型,那么[ebp-48h]这块内存空间存的到底是[03372088h]这个地址呢,还是[03372088h] 这块地址中的字符串“Hello”???