计算机在內存中怎样存储变量
如int a=1+2;是怎样在內存中存储的呢?求详细解答!:smile 楼主你好,我这里就不贴图了,用文字描述,如果不懂可以联系我。是这样的,在CPU内部也有一些可以存储数据的部件---寄存器,如EAX,EBX等等。
明白了上面说的,我们在来看你说的这条代码“int a=1+2;”。
在这条语句中,CPU的执行顺序是从右到左即先计算1+2,这一过程是在CPU内部进行的,当CPU计算完1+2滞后于就会将结果通过一个叫数据总线部件将结果写入“a”这个变量中去。“a”其实是你为内存地址起的一个代号而已。
这样说不知道你能不能明白。用汇编解释如下:
假设变量a的地址为100000H,则过程为
mov eax,1/*将1放进EAX中*/
mov edx,2/*将2放进EDX中*/
mov ebx,10000/*将变量A的地址放进EBX中*/
add eax,edx/*将EAX和EBX相加并将结果放进EAX中*/
mov ,eax/*将EAX中的结果放进地址为10000H的内存单元中几即变量A中*/
欧猪可否明白,另外这里的汇编代码可能有错误只需要看注释就可以了,有点忘记汇编了。 在内存中声明int类型的存储空间,并把(1+2)的值写入该位置,完成对a的赋值。 在内存中声明int类型的存储空间,并把(1+2)的值写入该位置,完成对a的赋值。 学完汇编就知道了汇编是挺好的一门理解性强的语言:smile :smile 在内存中声明int类型的存储空间,并把(1+2)的值写入该位置,完成对a的赋值
mov eax,1/*将1放进EAX中*/
mov edx,2/*将2放进EDX中*/
mov ebx,10000/*将变量A的地址放进EBX中*/
add eax,edx/*将EAX和EBX相加并将结果放进EAX中*/
mov ,eax/*将EAX中的结果放进地址为10000H的内存单元中几即变量A中*/
页:
[1]