计算机组成原理-练习(指令系统和CPU)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)在单字长指令中,根据能完成105种操作,操作码取7位。因允许直接和间 接寻址,且有基址寄存器和变址寄存器,故取2位寻址特征位,其指令格式如下: 7位 2位 7位
2. 若 (SP)=1002H 、 (R0)=0020H 、 (R1)=0022H 、 (R2)=0024H , 连续进行将 R0 入栈、将 R1 入栈、出栈到 R2 、将 R1 入栈、将 R2入栈、出栈到R0操作后, 请画出每一个操作后的 SP 及堆栈内部的数据变化,同时说明 R0~R2的当前值。
…… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 20H 1001H 00H 1002H …… 0FFCH 0FFDH 0FFEH 0FFFH 1000H 1001H 1002H 主存 …… 0FFCH 0FFDH SP 0FFEH 0FFFH 1000H 1001H 1002H 主存 22H 00H 22H 00H 20H 00H SP …… 0FFCH 0FFDH 0FFEH 0FFFH 1000H 1001H 1002H 主存
(3)MOD=001(直接寻址)时,操作数EA长度=D的长度=8bit, 可访问的主存区为28=256个机器字; MOD=010(间接寻址)时,操作数EA长度=存储字长=机器字长=16bit, 可访问的主存区为216=64K个机器字; MOD=100(相对寻址)时,下条指令EA长度=max{PC的长度,D的长度}= max{16bit,8bit}=16bit,可访问的主存区为216=64K个机器字。
…… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 1001H 1002H …… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 20H 1001H 00H 1002H …… 主存 0FFCH 0FFDH 0FFEH 22H 0FFFH 00H 1000H 20H 1001H 00H 1002H …… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 20H 1001H 00H 1002H
4.设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许
直接和间接寻址,且指令字长、机器字长和存储字长均为16位。
(1)若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围是 多少?一次间址的寻址范围是多少?画出其指令格式并说明各字段的含义。
(2)若存储字长不变,可采用什么方法直接访问容量为16MB的主存?
操作码OP 寻址方式位MOD
(2)设D=[DZ]补,
形式地址D
立即寻址的地址码表示的是:操作数=DZ; 直接寻址的地址码表示的是:操作数EA=D; 间接寻址的地址码表示的是:操作数EA=[D]; 变址寻址的地址码表示的是:操作数EA=(RI)+D;
相对寻址的地址码表示的是:下条指令EA=(PC)+DZ。
3.某机器字长为16位,存储器按字编址,指令字长同机器字长。 指令格式如下: 5bit 3bit 8bit
形式地址D 操作码OP 寻址方式位MOD
其中,MOD=000~100分别表示立即寻址、直接寻址、间接寻 址、变址寻址和相对寻址,变址寻址只使用唯一的变址寄存器 (记为RI),形式地址D在MOD=000及100时为补码表示、其余 寻址方式时为无符号编码表示。
(1)该指令格式能定义多少种不同的操作?立即寻址的操作数范围是多少? (2)写出各种寻址方式时,地址码对应的数据或地址表达式。 (3)写出MOD=001、010、100时,能访问的最大主存区为多少个机器字。 (1)由于操作码为5位,故可以定义25=32种不同的操作; 由于立即寻址的D用8位补码表示,故立即寻址的操作数范围为 -128~+127。
SP
22H 00H 20H 00H
22H 00H 20H 00H
SP
百度文库
R1入栈 (SP)=0FFEH (R0)=0020H (R1)=0022H (R2)=0022H
R2入栈 (SP)=0FFCH (R0)=0020H (R1)=0022H (R2)=0022H
出栈到R0 (SP)=0FFEH (R0)=0022H (R1)=0022H (R2)=0022H
出栈到R2 (SP)=1000H (R0)=0020H (R1)=0022H (R2)=0022H
若 (SP)=1002H 、 (R0)=0020H 、 (R1)=0022H 、 (R2)=0024H , 连续进行将 R0 入栈、将 R1 入栈、出栈到 R2 、将 R1 入栈、将 R2入栈、出栈到R0操作后, 请画出每一个操作后的 SP 及堆栈内部的数据变化,同时说明 R0~R2的当前值。
2. 假设计算机约定主存按字节编址,数据在存储器 中采用小端次序存放, CPU 中设置有 4 个通用寄存器 (记为R0~R3),设置有寄存器SP指向存储器堆栈的栈 顶,入栈操作时 SP向递减方向移动。若 (SP)=1002H 、 (R0)=0020H 、 (R1)=0022H 、 (R2)=0024H , 连 续 进 行将R0入栈、将R1入栈、出栈到R2、将R1入栈、将 R2 入栈、出栈到 R0 操作后,请画出每一个操作后的 SP 及堆栈内部的数据变化,同时说明 R0~R2 的当前 值。
SP
SP
SP
SP
空堆栈 (SP)=1002H (R0)=0020H (R1)=0022H (R2)=0024H
R0入栈 (SP)=1000H (R0)=0020H (R1)=0022H (R2)=0024H
R1入栈 (SP)=0FFEH (R0)=0020H (R1)=0022H (R2)=0024H
指令系统
CPU
--练习
1. 某指令系统中,指令字长为 16 位,指令操作码采 用扩展编码法,有单地址指令、双地址指令两种指令。
若每个地址码均为6位,且双地址指令为A条,则单地 址指令最多有多少条?
解: 1、双地址指令操作码长为16b-2×6b=4b,由题意 ,空闲24-A种编码 2、单地址指令操作码长为16b-6b=10b,可分为4b 和6b两部分 则单地址指令最多有(24-A)×26条。
2. 若 (SP)=1002H 、 (R0)=0020H 、 (R1)=0022H 、 (R2)=0024H , 连续进行将 R0 入栈、将 R1 入栈、出栈到 R2 、将 R1 入栈、将 R2入栈、出栈到R0操作后, 请画出每一个操作后的 SP 及堆栈内部的数据变化,同时说明 R0~R2的当前值。
…… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 20H 1001H 00H 1002H …… 0FFCH 0FFDH 0FFEH 0FFFH 1000H 1001H 1002H 主存 …… 0FFCH 0FFDH SP 0FFEH 0FFFH 1000H 1001H 1002H 主存 22H 00H 22H 00H 20H 00H SP …… 0FFCH 0FFDH 0FFEH 0FFFH 1000H 1001H 1002H 主存
(3)MOD=001(直接寻址)时,操作数EA长度=D的长度=8bit, 可访问的主存区为28=256个机器字; MOD=010(间接寻址)时,操作数EA长度=存储字长=机器字长=16bit, 可访问的主存区为216=64K个机器字; MOD=100(相对寻址)时,下条指令EA长度=max{PC的长度,D的长度}= max{16bit,8bit}=16bit,可访问的主存区为216=64K个机器字。
…… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 1001H 1002H …… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 20H 1001H 00H 1002H …… 主存 0FFCH 0FFDH 0FFEH 22H 0FFFH 00H 1000H 20H 1001H 00H 1002H …… 主存 0FFCH 0FFDH 0FFEH 0FFFH 1000H 20H 1001H 00H 1002H
4.设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许
直接和间接寻址,且指令字长、机器字长和存储字长均为16位。
(1)若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围是 多少?一次间址的寻址范围是多少?画出其指令格式并说明各字段的含义。
(2)若存储字长不变,可采用什么方法直接访问容量为16MB的主存?
操作码OP 寻址方式位MOD
(2)设D=[DZ]补,
形式地址D
立即寻址的地址码表示的是:操作数=DZ; 直接寻址的地址码表示的是:操作数EA=D; 间接寻址的地址码表示的是:操作数EA=[D]; 变址寻址的地址码表示的是:操作数EA=(RI)+D;
相对寻址的地址码表示的是:下条指令EA=(PC)+DZ。
3.某机器字长为16位,存储器按字编址,指令字长同机器字长。 指令格式如下: 5bit 3bit 8bit
形式地址D 操作码OP 寻址方式位MOD
其中,MOD=000~100分别表示立即寻址、直接寻址、间接寻 址、变址寻址和相对寻址,变址寻址只使用唯一的变址寄存器 (记为RI),形式地址D在MOD=000及100时为补码表示、其余 寻址方式时为无符号编码表示。
(1)该指令格式能定义多少种不同的操作?立即寻址的操作数范围是多少? (2)写出各种寻址方式时,地址码对应的数据或地址表达式。 (3)写出MOD=001、010、100时,能访问的最大主存区为多少个机器字。 (1)由于操作码为5位,故可以定义25=32种不同的操作; 由于立即寻址的D用8位补码表示,故立即寻址的操作数范围为 -128~+127。
SP
22H 00H 20H 00H
22H 00H 20H 00H
SP
百度文库
R1入栈 (SP)=0FFEH (R0)=0020H (R1)=0022H (R2)=0022H
R2入栈 (SP)=0FFCH (R0)=0020H (R1)=0022H (R2)=0022H
出栈到R0 (SP)=0FFEH (R0)=0022H (R1)=0022H (R2)=0022H
出栈到R2 (SP)=1000H (R0)=0020H (R1)=0022H (R2)=0022H
若 (SP)=1002H 、 (R0)=0020H 、 (R1)=0022H 、 (R2)=0024H , 连续进行将 R0 入栈、将 R1 入栈、出栈到 R2 、将 R1 入栈、将 R2入栈、出栈到R0操作后, 请画出每一个操作后的 SP 及堆栈内部的数据变化,同时说明 R0~R2的当前值。
2. 假设计算机约定主存按字节编址,数据在存储器 中采用小端次序存放, CPU 中设置有 4 个通用寄存器 (记为R0~R3),设置有寄存器SP指向存储器堆栈的栈 顶,入栈操作时 SP向递减方向移动。若 (SP)=1002H 、 (R0)=0020H 、 (R1)=0022H 、 (R2)=0024H , 连 续 进 行将R0入栈、将R1入栈、出栈到R2、将R1入栈、将 R2 入栈、出栈到 R0 操作后,请画出每一个操作后的 SP 及堆栈内部的数据变化,同时说明 R0~R2 的当前 值。
SP
SP
SP
SP
空堆栈 (SP)=1002H (R0)=0020H (R1)=0022H (R2)=0024H
R0入栈 (SP)=1000H (R0)=0020H (R1)=0022H (R2)=0024H
R1入栈 (SP)=0FFEH (R0)=0020H (R1)=0022H (R2)=0024H
指令系统
CPU
--练习
1. 某指令系统中,指令字长为 16 位,指令操作码采 用扩展编码法,有单地址指令、双地址指令两种指令。
若每个地址码均为6位,且双地址指令为A条,则单地 址指令最多有多少条?
解: 1、双地址指令操作码长为16b-2×6b=4b,由题意 ,空闲24-A种编码 2、单地址指令操作码长为16b-6b=10b,可分为4b 和6b两部分 则单地址指令最多有(24-A)×26条。