【cs基础】CPU是怎样执行代码的

本文介绍了计算机程序如何在CPU上运行的基本原理,包括程序的概念、内存地址的作用、CPU的内部结构及其工作方式,并详细解释了寄存器的功能、程序函数处理机制及主要的机器语言指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础概念

  • 程序是指令和数据的组合体,被复制到内存才能运行。
  • 内存地址是保存指令和数据的场所,通过地址标记
  • CPU 能识别和执行的只有机器语言。

CPU 结构

CPU 内部由寄存器、控制器、运算器和时钟四个部分构成,由电流信号相互连通
- 寄存器: 保存指令、数据
- 控制器: 读取内存输入寄存器,控制指令流转
- 运算器: 运算寄存器中的数据
- 时钟:发出计时信号,代表运算速度

寄存器

程序是把寄存器作为对象来描述的,程序运行就是依赖寄存器的控制。
- 存储的内容既可以是指令也可以是数据
- 数据分为“用于运算的数值”和“表示内存地址的数值”两种。数据种类不同,存储该数值的寄存器也不同

累加寄存器 –> 运算的数值
基址寄存器和变址寄存器 –> 表示内存地址的数值
标志寄存器 –> 运算处理后的CPU的状态
程序计数器 –> 下一条指令所在内存的地址
栈寄存器 –> 栈区域的起始地址

程序函数的处理

  • 机器语言的 call 指令和 return 指令能够解决这个问题。函数调用使用的是 call 指令,而不是跳转指令。在将函数的入口地址设定到程序计数器之前,call 指令会把调用函数后要执行的指令地址存储在名为栈的主存内。函数处理完毕后,再通过函数的出口来执行 return 命令。return 命令的功能是把保存在栈中的地址设定到程序计数器中

CPU 处理

CPU 能执行的主要机器语言指令

  • 数据转送指令 –> 寄存器和内存、内存和内存、寄存器和外围设备之间的数据读写操作
  • 运算指令 –> 用累加寄存器执行算术运算、逻辑运算、比较运算和移位运算
  • 跳转指令 –> 实现条件分支、循环、强制跳转等
  • call/return指令 –> 函数的调用/返回调用前的地址

参考:
《程序是怎样跑起来的》一书
http://cs.hnjk.net/T24Courses/2411/main/page/c040200.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值