mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-02-07 21:04:38 +08:00
Update 3-instruction-system.md
This commit is contained in:
@@ -149,7 +149,7 @@
|
||||
|
||||
用于确定要执行的下一条指令的地址。始终由程序计数器$PC$给出。
|
||||
|
||||
+ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,<span style="color:orange">注意:</span>一般是加一个指令字长而不是单纯加一。
|
||||
+ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,<span style="color:orange">注意:</span>不是单纯加一。如果是按字编址就是直接加一,如果是按字节编址则是加一个指令字长。
|
||||
+ 跳跃寻址:由转移指令指出。如执行到操作码为$JMP$,则跳跃到保存的地址码所指向的指令地址进行执行。跳跃地址分为绝对地址(标记符直接得到)和相对地址(相对当前地址的偏移量)。跳跃的结构是当前指令修改$PC$值,所以下一条指令仍通过$PC$给出。可实现程序的条件或无条件转移。
|
||||
|
||||
### 数据寻址
|
||||
@@ -170,11 +170,15 @@
|
||||
+ 变址寻址。
|
||||
+ 堆栈寻址。
|
||||
|
||||
+ 此时指令就需要由:操作码OP+寻址地址(寻址方式)+形式地址A组成。形式地址不再是实际的地址,而是指令字中的地址。
|
||||
+ 此时指令就需要由:操作码$OP$+寻址地址(寻址方式)+形式地址$A$组成。形式地址不再是实际的地址,而是指令字中的地址。
|
||||
+ 有效地址$EA$就是通过寻址特征和形式地址进行运算得到的。
|
||||
+ 无论是有多少个地址,都必须给出成对的寻址特征和形式地址。
|
||||
+ 主存地址不能为负。
|
||||
|
||||
由于访存慢于访问寄存器,所以寄存器访问快于直接访问。
|
||||
|
||||
如果采用变长指令码格式,由于要表示一定范围的立即数,立即数的指令通常需要较多的二进制位,取指时,可能需要不止一次的读内存来完成取指,因此采用变长指令码格式的时候,寄存器寻址方式的执行速度更快。但是如果采用定长指令码格式,那就是立即寻址更快了。
|
||||
|
||||
#### 隐含寻址
|
||||
|
||||
+ 不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。
|
||||
|
||||
Reference in New Issue
Block a user