编程中,怎样从硬件(内存,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第五章相关部分
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 5.1声道片源对于没有5.1硬件系统的用户来说有意义吗
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采