microcomputer_principle_03_总线与指令
总线
总线时序
- CPU工作时序:
- CPU各引脚信号在时间上的关系
- 总线周期:
- CPU完成一次访问内存(或接口)操作所需要的时间。
- 一个总线周期至少包括4个时钟周期。
总线概念
总线
: 一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道。
从传送信息的角度看,分为三种类型:
- 地址总线(AB
- 数据总线(DB
- 控制总线(CB
层级结构分类
- CPU总线
- 系统总线
- 外部总线
总线结构
单总线结构
多总线结构
面向CPU的双总线结构
存储器与I/O接口间无直接通道
当部分高速外部设备,需要与内存直接进行数据交换的时候,无路可走
也意味着,所有接口与内存的交互都需要通过cpu
面向存储器的双总线结构
在单总线结构基础上,增加一条CPU到存储器的高速总线
这也是,现代微机中的多总线结构的前期阶段
总线的基本功能
- 数据传送
- 仲裁控制
- 出错处理
- 总线驱动
总线评价指标
总线带宽
(B/S)- 单位时间内总线上可传送的数据量
- 总线带宽=位宽
工作频率
- 总线位宽(bit)
- 能同时传输的数据位数
- 总线的工作频率(MHz)
- 总线带宽 = (位宽/8)
(工作频率/每个存取周期的时钟数)
- 总线带宽 = (位宽/8)
指令与指令系系统
指令
: 控制计算机完成某种操作的命令
指令系统
: 处理器所能识别的所有指令的集合
指令的兼容性
:同一系列机的指令都是兼容的
一条指令应包含的信息:
- 运算数据的来源
- 运算结果的取向
- 执行的操作
指令格式
操作码 【操作数】,【操作数】
(方括号指可有可无
操作完成后,数据会被放在目标操作数位置。
寻址方式
这一讲非常重要
- 操作数可能的来源或运算结果可能的去处;
- 由指令直接给出
- 寄存器
- 内存单元
- 寻找操作数所在地址的方法可以有三种大类型
- 指令直接给出的方式
- 存放于寄存器中的寻址方式
- 存放于存储器中的寻址方式 (最复杂一类
立即寻址
运算对象由指令直接给出(立即寻址)
- 由指令直接给出运算的数据(操作数是立即数)。为常数形式或字符形式。
- 立即数只表示运算的数据,无地址含义。
立即寻址仅适合于源操作数。源操作数是参加操作的数据本身
例: MOV AX, 1200H
寄存器寻址
参加操作的操作数在CPU的通用寄存器中。
- MOV AX, BX
此种寻址方式中的寄存器主要是通用寄存器
不含控制寄存器,段寄存器限制使用
寄存器间接寻址
存储器操作数的寻址方式
- 关注点:
- 指令操作的对象在内存中,表现形式为:
- [ ]
- 指令中给出运算对象在内存某个逻辑段中的偏移地址
- [偏移地址]
- 逻辑段的段基地址通过默认或重设方式给出。
- 指令操作的对象在内存中,表现形式为:
存储器操作数的子长本身不确定,取子长取决于指令中另一个寄存器操作数,或通过其他方式制定字长。
直接寻址
这是第一种有关,存储器操作数的寻址方式。
- 指令中,直接给出操作数的偏移地址
- 例: MOV AX, [1200H]
- 直接寻址方式下,操作数默认认为在数据段,但允许段重设,即由指令给出所在逻辑段。
- 例: MOV AX, ES:[1200H]
间接寻址
- 操作数存放在内存中,数据在内存中的偏移地址为方括号中通用寄存器的内容。
- 仅有4个通用寄存器可用于存放数据的偏移地址
- 能够存放间接地址的寄存器仅有4个,间址寄存器(BX,BP,SI,DI)
- 间接寻址的一般格式:
- [间址寄存器]
- 由寄存器间接给出操作数的偏移地址;
- 存放偏移地址的寄存器成为间址寄存器(BX,BP,SI,DI)
- 操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:
BX,SI,DI—-> 默认在数据段
BP —-> 默认在堆栈段
可以通过段重设段方法,重设在其他段。
相对寻址
- 操作数的偏移地址为寄存器的内容加上一个位移量。
- 如: MOV AX, [BX+DATA]
- 例:
- MOV AX, 2000H
- MOV DS, AX
- MOV BX, 1200H
- MOV AL, [BX]5
上指令中的[BX]5等效于[BX+5]
相对寻址的引入,主要用于一维数据组的操作
基址、变址寻址
基址寄存器只有两个BX,BP
变址寄存器只有两个SI,DI
- 操作数的偏移地址位
- 一个基址寄存器的内容 + 一个变址寄存器的内容;
- 操作数的段地址由选择的基址寄存器决定
- 基址寄存器为BX,默认在数据段
- 基址寄存器为BP,默认在堆栈段
- 基址变址寻址方式于相对寻址一样,主要用于一维数组操作。
基址、变址、相对寻址
操作数的偏移地址
- 基址寄存器内容+变址寄存器内容+位移量
操作数的段地址由,选择的基址寄存器决定。
基址变址相对寻址方式主要用于二维表格操作。
例子程序段:
- MOV DI, 1100H
- MOV BP, DI
- MOV AL, [BP][DI]5
基址寄存器选择BP,表示操作数在堆栈段
隐含寻址
- 指令中隐含了一个或两个操作数的地址,即操作数在默认地址中
- 例子:
- MUL BL
- 执行指令:
- AL
BL —-> AX
- AL
寻址小结:
- Post title: microcomputer_principle_03_总线与指令
- Create time: 2023-02-17 23:54:42
- Post link: embedded-system/microcomputer-principle-03-总线与指令/
- Copyright notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.