对程序员来说cpu是什么

第一章 对程序员来说cpu是什么

程序是什么?指示计算机每一步动作的一组指令
程序是由什么组成的? 指令和数据
什么是机器语言?cpu可以直接识别并使用的语言
正在运行的程序存储在哪?内存
什么是内存地址?内存中保存命令和数据的场所, 通过地址来标记和指定。 地址
由整数值表示。 保存数据和指令的场所,通过地址来标记和制定
计算机的构成元件中,负责程序的解释和运行的事那个?

cpu和内存是由IC(Integrated Circuit) 集成电路组成的。
从功能上看cpu的内部由寄存器、控制器、运算器、时钟组成。
各部分通过电流信号通信
(1)控制器负责把内存的指令数据读入寄存器
(2)运算器负责运算从内存读入寄存器的数据
(3)寄存器是用来暂存指令、数据等处理对象
(4)时钟负责发出cpu开始计时的时钟信号

1.2CPU是寄存器的集合体
程序员主要关注寄存器就可以 了,因为程序是吧寄存器作为对象来描述的

汇编语言与机器语言基本上是一一对应的关系

基地址、变地址、通用寄存器可以有多个,其他只能有一个

1.3决定程序流程的程序计数器
程序启动时,操作系统会把硬盘保存的程序复制到内存中。之后会设定为对应的地址值
每次执行指令,程序计数器就会自动加

1.4条件分支和循环机制
顺序执行:按照地址内容顺序执行 计数器自动加1
循环:重复执行同一地址的指令 重复执行同一指令
条件分支:执行任意指令
如图所示:当时条件分支时,实际上会执行一条条件分支指令。当大于0时跳转到0104地址
实际上这个指令间接执行了将程序计数器设定成0104地址这个操作。

循环分支与条件分支道理一样会判断·当前是否需要跳转

标志寄存器:无论当前累加寄存器的运算结果是负数、零还是正数。标志寄存器都会将其保存(野负责存放溢出和奇数偶数教校验的结果)

cpu进行运算时,标志寄存器的数值会根据运算结果自动设定。条件分支在跳转前会进行比较运算
是否执行跳转指令则由cpu在参考标志寄存器的数值后进行判断。

假设累加寄存器存的x与通用寄存器的y进行比较,执行指令后,cpu的运算装置(内部)暗中比较
x-y。无论正负都会存储到标志寄存器中。为正表示x比y大,为负表示x比y小0表示相等

1.5函数的调用机制
函数调用机制是通过吧程序计数器的值设置为函数的存储地址实现的
call指令: call 指令会把调用函数后要执行的指令地址存储在名为栈 A 的主存内。 函数处理完毕后, 再通过函数的出口来执行 return 命令
renturn指令: return 命令的功能是把保存在栈中的地址设定到程序计数器中

1.6通过地址和索引实现数组 
基址寄存器和变址寄存器组合起来实现数组的操作
如图可 以 将 10000000 存 入 基 址 寄 存 器, 并 使 变 址 寄 存 器 的 值 在
00000000~0000FFFF 变化。 CPU 则会把基址寄存器+变址寄存器的值
解释为实际查看的内存地址。 变址寄存器的值就相当于高级编程语言
程序中数组的索引功能。

1.7cpu处理其实很简单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值