CPU原理

冯 • 诺依曼结构

运算器

功能:执行算术逻辑运算 组成:

  • ALU: 用于执行各种算术和逻辑运算,包括加、减、乘、除、与、或、非、移位等。
  • 数据寄存器: 用于存储运算器中的操作数和运算结果。
  • 状态寄存器:用于存储运算器的运算状态,例如运算结果是否为零、是否溢出等。

Kevin2li大约 4 分钟ComputerComposition
中断

常见中断类型

Operating Systems - Internals and Design Principles 9th, p36

程序执行流


Kevin2li小于 1 分钟ComputerComposition
基础知识

字节序

  • 大端法:高字节存储在低地址,网络传输中采用,又叫网络字节序
  • 小端法:高字节存储在高地址,现代PC基本采用,又叫主机字节序

0x01234567为例:


Kevin2li大约 1 分钟ComputerComposition
x86_64汇编

寄存器

在Intel CPU中,通常有以下类型的寄存器:

  • 通用寄存器:通用寄存器是最常用的寄存器类型,它们用于存储整数数据。在64位系统中,有16个通用寄存器,每个寄存器大小为64位。这些寄存器的名称是RAX、RBX、RCX、RDX、RSI、RDI、RBP、RSP、R8-R15。
寄存器名称 描述
RAX 累加器寄存器(Accumulator Register),用于存储算术和逻辑运算的操作数和结果。在函数调用中,它通常用于存储函数的返回值。
RBX 基址寄存器(Base Register),用于存储数据的基地址。在一些内存寻址方式中,它通常用于存储变量的地址。
RCX 计数寄存器(Counter Register),用于在循环中计数。在函数调用中,它通常用于存储函数的参数。
RDX 数据寄存器(Data Register),用于存储算术和逻辑运算的操作数和结果。在函数调用中,它通常用于存储函数的参数。
RSI 源索引寄存器(Source Index Register),用于字符串操作中的源地址。
RDI 目的索引寄存器(Destination Index Register),用于字符串操作中的目的地址。
RBP 基址指针寄存器(Base/Frame Pointer Register),用于存储当前栈帧的基址。在函数调用中,它通常用于存储上一个栈帧的基址。
RSP 栈指针寄存器(Stack Pointer Register),用于存储当前栈顶的地址。在函数调用和异常处理中,它通常用于存储函数的返回地址和异常处理的返回地址。
R8-R15 扩展寄存器(Extended Register),这些寄存器是在64位系统中新增的。它们用于存储算术和逻辑运算的操作数和结果,以及函数调用的参数和返回值。

Kevin2li大约 4 分钟ComputerComposition