因为嵌入式系统学习需要,开始学习汇编语言
学习资料是B站的视频:汇编语言程序
一、CPU对存储器的读写
CPU想要进行数据的读写,必须和外部器件进行三类信息交互
- 储存单元地址(地址信息)
- 器件的选择,读或写命令(控制信息)
- 读或写的数据(数据信息)
演示
- 机器码:略
- 16进制:A00300
- 汇编指令:MOV AL, [3]
- 含义:从3号单元读取数据送入寄存器AL
这是一个CPU对存储器读的实例,具体讲解置顶的B站视频对应章节
二、内存地址空间
什么是内存地址空间
- CPU地址总线宽度为N,寻址空间为 2 N B 2^{\text{N}}\text{B} 2NB
- 8086CPU的地址总线宽度为20,那么可以寻址1MB个内存单元,其内存地址空间为1MB
从CPU角度看地址空间分配
RAM | ROM |
---|---|
随机存储器 | 只读存储器 |
动态变化数据,即可读也可写 | 固定数据,只能读不能写 |
三、将各类存储器看作一个逻辑器件——统一编址
- 所有物理存储器被看作一个由若干存储单元组成的逻辑存储器
- 每个物理存储器在这个逻辑存储器占有一个地址段,即一个存储空间,形成以下存储格局
四、内存地址空间的分配方案——以8086PC机为例
- 00000 到 9FFFF 分配为主存储地址空间
- A0000 到 BFFFF 分配为显存地址空间
- C0000 到 FFFFF 分配为各类ROM地址空间