计算机底层结构——1
CPU
CPU是集成了==控制器,运算器,寄存器,时钟==的终端,它负责将我们的==汇编语言==解释为==机器语言==,从而供底层微处理器执行。他们通过==总线==相互连接,传递数据和指令。
- 寄存器:用于==暂存指令==,==等对象==。是内存的一种
- 控制器:负责将内存上的指令数据==读入寄存器==并依据结果==控制整个计算机==,主要是输入输出时间的控制。
- 运算器:负责运算寄存器中的数据,并把结果输出。
- 时钟:发出CPU开始计时的时钟信号。(==信号频率越高,CPU运行越快==)
内存
- 内存指的是计算机的主存储器,负责存储指令和数据。==每个字节都有一个地址编号==,cpu通过它来读取指令与数据。
CPU与寄存器
- CPU是寄存器的集合体,程序将寄存器作为对象来描述。
- 汇编:指的是将汇编语言转化为机器语言。
- 寄存器种类多样:比如有==程序计数器==,==标志寄存器==,累加寄存器,==基址寄存器==,==变址寄存器==等。
寄存器与程序执行
- 寄存器中的程序计数器被赋予了分配程序执行顺序的能力。当硬盘中的文件被复制到内存后,程计会被==设定为初始值0100==,然后开始运行,==每当==CPU执行完一个指令,程计中的数值都会进行==累加==操作。CPU会按照程计的数值,从内存中读取命令并执行。
- 循环,顺序,条件分支:这三种执行方式组成了程序的流程。
- 条件分支:如果在程序执行的过程中,需要有条件分支语句,那么在程计中,遇到这个语句,==会将程计的数值设置为对应的地址数值==,这个操作被称为==jump==。
==标志==寄存器:标志寄存器主要的作用为将累加寄存器中的结果==状态==进行记录,比如正负奇偶都会将其进行保存。所以在条件分支前,由其判断是否进行jump。标志寄存器==前三个字节分别表示正0负三种状态==。
标志寄存器的判断,实际上是对数值进行==减法==运算,通过结果设定状态。 ^3cacdc
函数的调用
- 函数在调用时,在程计中会存在一个==函数调用点==。
- call,return指令:call指令在函数入口地址设定到程计前,会把==函数调用后==要执行的地址存储在栈中。
栈相关:[[内存与数据类型#栈]]
函数处理完后,在通过函数出口来执行==return==指令,将栈中的地址设定到程计中。
基址寄存器与变址寄存器:通过这两个寄存器,我们可以对主内存上特定的内存区域进行划分,从而实现类似数组的操作。数组相关:[[数组部分]]
- CPU会将基址寄存器和变址寄存器中的==值之和==视作实际要去查看的内存地址。变址寄存器相当于==数组索引功能!==
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Pleasant233!