计算机是如何实现加法操作的

参考链接:http://c.biancheng.net/view/vip_2090.html
程序是保存在硬盘中的,要想程序运行,必须把载入内存才行,cpu只能从内存中读取数据和指令,当数据处理完后,cpu再将数据传入内存,最后在由内存存入硬盘中,可以说计算机中的一切操做都以内存为枢纽

CPU直接从内存中读取数据,处理完成后将结果再写入内存。

cpu的简单结构

在这里插入图片描述

  • 运算器: 计算机的大脑 负责运算工作,每种运算有对应的电路支持,速度很快
  • 寄存器:cpu内部非常小,但速度非常快的存储部件。容量有限,32位cpu 每个寄存器可以存放32位的数据(4字节),64位cpu 可以存放 64位数据。
常用寄存器:EIP 存放下一条指令的地址
CR3 保存当前进程页目录的物理地址 切换进程 CR3内容改变
EBP/ESP 指向栈的底部/顶部
  • 缓存 :cpu的运行速度是内存读取速度的数量级倍,如果每次都从内存中读取数据,会造成cpu长时间处于等待状态。因此设置缓存,对于频繁使用的数据将其放入缓存,直接从缓存读取。(缓存大小有限,不是所有数据都从缓存读取)、

cpu指令

使cpu工作的指令,如add用于加法,sub用于除法运算,这些命令统称为cpu的指令集。我们使用的c语言最终也会被编译成一条条的cpu指令。例如

int a = 0X14, b = 0XAE, c;
c = a + b;

其对应的cpu指令为

mov  ptr[a], 0X14     把0X14 存储到a的内存中
mov  ptr[b], 0XAE
mov  eax, ptr[a]       把a移动到寄存器 eax中
add  eax, ptr[b]       把b的值加到寄存器eax中
mov  ptr[c], eax       把寄存器中的值存储到c中
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值