控制器 组成由三部分: 运算器、控制器、寄存器
控制器: 根据指令完成操作, 发出各种微操作命令序列,用以控制所有被控对象,完成指令执行
运算器: 算数、逻辑运算。
寄存器:一种有限存储容量的高速存储部件;可以用来暂存指令/数据/地址,既可以传达控制器的命令给运算器,又可以帮运算器记录待处理/已处理完的数据。
程序计数寄存器(Program Counter Register, PC): 又称“指令地址寄存器”,存放下一条要执行指令的内存地址。
指令寄存器(Instruction Register, IR): 存放当前正在执行的一条指令,存放的内容来自于数据寄存器(DR)。
数据寄存器(DR):作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。
程序,其实是 一条条 指令。
cpu来执行指令
例子: a = 1 + 2
字符串, 这样写 只为了 程序员认识。
汇编代码
机器码。 机器码由0 1 组成,机器码是cpu真正认识的东西
cpu执行程序的过程:
数据段来存放这些数据,如图
·数据1被存放到0x100位置
·数据2被存放到0x104位置
·32位的cpu所以一条指令占32位大小,所以 每条指令 间隔4个字节
·数据大小 根据程序中 定义的变量的类型。比如int 4字节 char 1字节
·编译器将a=1+2翻译为4条指令,存放之正文段(代码段)。 4条指令存放在0x200~0x20c区域
指令1,load指令 将0x100地址中的 数据1 装入到寄存器R0
指令2, load指令 将0x104地址中的 数据2 装入寄存器R1
指令3, add指令 将寄存器R0 R1的数据相加, 并把结果 存放至 寄存器R2
指令3, store指令 将寄存器R2中的数据 存回 数据段中的 0x108地址中, 这就是变量a的地址
·编译完成后,执行程序的时候,程序计数器会被设置为0x200地址,然后依次执行这四条指令。