mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-11-03 22:03:48 +08:00
Update 3-instruction-system.md
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
|
||||
指如何使用二进制代码表示指令。
|
||||
|
||||
操作码+寻址特征码(有多少种寻址方式)+地址码。
|
||||
|
||||
### 指令定义
|
||||
|
||||
+ 指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。
|
||||
@@ -147,8 +149,8 @@
|
||||
|
||||
用于确定要执行的下一条指令的地址。始终由程序计数器$PC$给出。
|
||||
|
||||
+ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,一般是加一个指令字长。
|
||||
+ 跳跃寻址:由转移指令指出。如执行到操作码为$JMP$,则跳跃到保存的地址码所指向的指令地址进行执行。跳跃地址分为绝对地址(标记符直接得到)和相对地址(相对当前地址的偏移量)。跳跃的结构是当前指令修改$PC$值,所以下一条指令仍通过$PC$给出。
|
||||
+ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,<span style="color:orange">注意:</span>一般是加一个指令字长而不是单纯加一。
|
||||
+ 跳跃寻址:由转移指令指出。如执行到操作码为$JMP$,则跳跃到保存的地址码所指向的指令地址进行执行。跳跃地址分为绝对地址(标记符直接得到)和相对地址(相对当前地址的偏移量)。跳跃的结构是当前指令修改$PC$值,所以下一条指令仍通过$PC$给出。可实现程序的条件或无条件转移。
|
||||
|
||||
### 数据寻址
|
||||
|
||||
@@ -171,6 +173,7 @@
|
||||
+ 此时指令就需要由:操作码OP+寻址地址(寻址方式)+形式地址A组成。形式地址不再是实际的地址,而是指令字中的地址。
|
||||
+ 有效地址$EA$就是通过寻址特征和形式地址进行运算得到的。
|
||||
+ 无论是有多少个地址,都必须给出成对的寻址特征和形式地址。
|
||||
+ 主存地址不能为负。
|
||||
|
||||
#### 隐含寻址
|
||||
|
||||
@@ -259,7 +262,7 @@
|
||||
|
||||
+ 将$CPU$中基址寄存器($BR$)的内容加上指令格式中的形式地址$A$,而形成操作数的有效地址,即$EA=(BR)+A$。
|
||||
+ 分为隐式基址寄存器(专用寄存器$BR$)和显式基址寄存器(需要指定某通用寄存器为基址寄存器)。
|
||||
+ 基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定,用户不可改变。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。
|
||||
+ 基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定,用户不可改变。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量,使用补码表示)。
|
||||
+ 当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。
|
||||
+ 优点:
|
||||
+ 可扩大寻址范围(基址寄存器的位数大于形式地址$A$的位数)。
|
||||
|
||||
Reference in New Issue
Block a user