x86汇编学习-内存CPU概述-1

151 阅读3分钟

CPU

  • 负责自动取指令和自动执行指令
  • 指令集: 处理器可以识别的指令
  • CPU内部构造

捕获.PNG

  • 控制部件
    控制整个处理器运行状态 什么时候取指令、接收数据、发数据
  • 算术逻辑
    算数、逻辑运算
  • 寄存器
    临时存储数据的地方
    寄存器的大小和CPU位数相同
    8008 - 8位CPU - 8位寄存器
    8086 - 16位CPU - 16位寄存器

内存

  • 存储指令和数据
  • 冯诺依曼计算机是以存储器为核心 指令和数据存储到一个地方 cpu负责执行指令
  • 内存内部逻辑构造

捕获.PNG 内存单元的长度固定8bit(位)-1byte(字节)
地址线决定了CPU能访问的内存的最大位置
2根地址线能访问4个内存单元[00,11]
8根地址线能访问256个内存单元[00000000,11111111]
n根地址线能访问2^n个内存单元

  • 读写流程
    写流程
    通过地址线给出地址(找到内存单元)
    数据线给出数字
    发出写命令(I/O控制) -> 数据写入到目标内存单元
    读流程
    地址线给出地址(找到内存单元)
    发出读命令(I/O控制) -> 内存数据读到运算器

自动计算

编程就是将指令按照想要的顺序放到内存里 CPU依次执行指令
CPU里面有一个指令指针寄存器 这个寄存器的功能就是保存指令的地址
执行流程

捕获.PNG 指令的组成
一条指令可以由操作码和操作数组成 也可以只由操作码组成
以(1+4)/(6-1)为例

内存地址指令指令的含义
0C
0B11110100停机
0A00001111(操作数)结果存储的目标地址
0901110000(操作码)将计算结果保存到目标地址
0811001010A/B 结果存储在A
0700000001(操作数)1的二进制形式
0601000100(操作码)寄存器B与操作数相减结果在寄存器B
0500000110(操作数)6的二进制形式
0401101010(操作码)将操作数放在寄存器B
0300000100(操作数)4的二进制形式
0201001100(操作码)寄存器A与操作数相加结果在寄存器A
0100000001(操作数)1的二进制形式
0001101001(操作码)将操作数放在寄存器A

{00,01} {02,03} {04,05} {06,07} {08} {09,0A} {0B}分别是一条指令