From b394e3b54e050488af31a819cf1156902011cd4e Mon Sep 17 00:00:00 2001 From: Didnelpsun <2675350965@qq.com> Date: Sat, 13 Nov 2021 19:47:25 +0800 Subject: [PATCH] Update 3-instruction-system.md --- Computer-Organization/3-instruction-system.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Computer-Organization/3-instruction-system.md b/Computer-Organization/3-instruction-system.md index fc0ca21..6782448 100644 --- a/Computer-Organization/3-instruction-system.md +++ b/Computer-Organization/3-instruction-system.md @@ -149,7 +149,7 @@ 用于确定要执行的下一条指令的地址。始终由程序计数器$PC$给出。 -+ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,注意:一般是加一个指令字长而不是单纯加一。 ++ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,注意:不是单纯加一。如果是按字编址就是直接加一,如果是按字节编址则是加一个指令字长。 + 跳跃寻址:由转移指令指出。如执行到操作码为$JMP$,则跳跃到保存的地址码所指向的指令地址进行执行。跳跃地址分为绝对地址(标记符直接得到)和相对地址(相对当前地址的偏移量)。跳跃的结构是当前指令修改$PC$值,所以下一条指令仍通过$PC$给出。可实现程序的条件或无条件转移。 ### 数据寻址 @@ -170,11 +170,15 @@ + 变址寻址。 + 堆栈寻址。 -+ 此时指令就需要由:操作码OP+寻址地址(寻址方式)+形式地址A组成。形式地址不再是实际的地址,而是指令字中的地址。 ++ 此时指令就需要由:操作码$OP$+寻址地址(寻址方式)+形式地址$A$组成。形式地址不再是实际的地址,而是指令字中的地址。 + 有效地址$EA$就是通过寻址特征和形式地址进行运算得到的。 + 无论是有多少个地址,都必须给出成对的寻址特征和形式地址。 + 主存地址不能为负。 +由于访存慢于访问寄存器,所以寄存器访问快于直接访问。 + +如果采用变长指令码格式,由于要表示一定范围的立即数,立即数的指令通常需要较多的二进制位,取指时,可能需要不止一次的读内存来完成取指,因此采用变长指令码格式的时候,寄存器寻址方式的执行速度更快。但是如果采用定长指令码格式,那就是立即寻址更快了。 + #### 隐含寻址 + 不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。