编程中,怎样从硬件(内存,CPU)层面解释x = x + 1?

【编程中,怎样从硬件(内存,CPU)层面解释x = x + 1?】 解释不了。因为是通过CPU计算的...

■网友
首先问题是不准确的,int x = 1; 并不执行,这是高级语言的表达式,经过编译器后已转成指定ISA的机器码,它才能被CPU执行。然后,没有说明作用域,不能说明它到底是在栈中还是堆中。生成的指令不明确,无法解释。
■网友
你举的例子上下文比较模糊,就按最常见的情况分析了。int x = 1;程序会在堆栈顶分配4个字节的空间,然后赋值为1。分配的空间在你代码里叫x,程序执行的时候是没有”变量”这个概念的,对程序来说x就是一个地址,可能是0x00456789。x = x + 1;和内存的关系不大。一般在执行的时候会利用寄存器加载x的值,然后对寄存器执行自增指令inc,然后再写回x。同样x只对你的代码有意义,程序是直接操作地址的。
■网友
inc eax
■网友
这种看书就能明白的问题请不要麻烦别人了推荐书目:C Primer第五章相关部分


    推荐阅读