From 94279d1e41487437f97fe40a6e5a48021adc17f5 Mon Sep 17 00:00:00 2001 From: Didnelpsun <2675350965@qq.com> Date: Fri, 12 Nov 2021 23:31:16 +0800 Subject: [PATCH] Update 3-instruction-system.md --- Computer-Organization/3-instruction-system.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Computer-Organization/3-instruction-system.md b/Computer-Organization/3-instruction-system.md index 2ce399d..fc0ca21 100644 --- a/Computer-Organization/3-instruction-system.md +++ b/Computer-Organization/3-instruction-system.md @@ -4,6 +4,8 @@ 指如何使用二进制代码表示指令。 +操作码+寻址特征码(有多少种寻址方式)+地址码。 + ### 指令定义 + 指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。 @@ -147,8 +149,8 @@ 用于确定要执行的下一条指令的地址。始终由程序计数器$PC$给出。 -+ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,一般是加一个指令字长。 -+ 跳跃寻址:由转移指令指出。如执行到操作码为$JMP$,则跳跃到保存的地址码所指向的指令地址进行执行。跳跃地址分为绝对地址(标记符直接得到)和相对地址(相对当前地址的偏移量)。跳跃的结构是当前指令修改$PC$值,所以下一条指令仍通过$PC$给出。 ++ 顺序寻址:由$PC$自动加上某个数寻址下一个要操作的指令,注意:一般是加一个指令字长而不是单纯加一。 ++ 跳跃寻址:由转移指令指出。如执行到操作码为$JMP$,则跳跃到保存的地址码所指向的指令地址进行执行。跳跃地址分为绝对地址(标记符直接得到)和相对地址(相对当前地址的偏移量)。跳跃的结构是当前指令修改$PC$值,所以下一条指令仍通过$PC$给出。可实现程序的条件或无条件转移。 ### 数据寻址 @@ -171,6 +173,7 @@ + 此时指令就需要由:操作码OP+寻址地址(寻址方式)+形式地址A组成。形式地址不再是实际的地址,而是指令字中的地址。 + 有效地址$EA$就是通过寻址特征和形式地址进行运算得到的。 + 无论是有多少个地址,都必须给出成对的寻址特征和形式地址。 ++ 主存地址不能为负。 #### 隐含寻址 @@ -259,7 +262,7 @@ + 将$CPU$中基址寄存器($BR$)的内容加上指令格式中的形式地址$A$,而形成操作数的有效地址,即$EA=(BR)+A$。 + 分为隐式基址寄存器(专用寄存器$BR$)和显式基址寄存器(需要指定某通用寄存器为基址寄存器)。 -+ 基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定,用户不可改变。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。 ++ 基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定,用户不可改变。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量,使用补码表示)。 + 当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。 + 优点: + 可扩大寻址范围(基址寄存器的位数大于形式地址$A$的位数)。