|
发表于 2015-11-7 15:09:35
|
显示全部楼层
楼主你好,我这里就不贴图了,用文字描述,如果不懂可以联系我。
是这样的,在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 [ebx],eax/*将EAX中的结果放进地址为10000H的内存单元中几即变量A中*/
欧猪可否明白,另外这里的汇编代码可能有错误只需要看注释就可以了,有点忘记汇编了。 |
评分
-
查看全部评分
|