‘壹’ 假定指令中地址码所给出的是操作数的有效地址,则该指令采用_____寻址方式。
应该是直接寻址
‘贰’ 变址寻址方式中,操作数的有效地址是______。
变址寻址方式中,操作数的有效地址是变址寄存器内容加上形式地址。
把变址寄存器的内容(通常是首地址)与指令地址码部分给出的地址(通常是位移量)之和作为操作数的地址来获得所需要的操作数就称为变址寻址。
在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。当采用地址指定方式时,形成操作数或指令地址的方式称为寻址方式。
寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。值得注意的是,在传统方式设计的计算机中,内存中指令的寻址与数据的寻址是交替进行的。
(2)假定指令地址码给出的操作数的存储地址扩展阅读:
一、ip寻址的方式
每一TCP/IP主机通过一个逻辑IP地址辨别。这个IP地址是一个Internet层地址,不依赖数据连接层地址(如网络接口卡的MAC地址)。一个唯一的IP地址需要每个主机和网络成分采用TCP/IP进行通信。
IP地址辨别网络上系统的位置和用街道地址辨别辨别城市街区的一座房屋一样采用同样的方式。正如街道地址必须辨别一个唯一的住处,一个IP地址必须是完全唯一的,并有着一个相同的格式。
每个IP地址包含一个网络ID 和一个主机ID。
网络ID (也叫做网络地址)通过IP路由器辨别位于相同物理网络范围的系统。所有在相同物理网络上的系统必须有同样的网络ID。网络ID在网络上应该是独一无二的。
主机ID(也叫做主机地址)在一网络内辨别工作站,服务器,路由器,或别的TCP/IP主机。每个主机的地址对网络ID来说是独一无二的。
二、变址寻址方式
变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址。
但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律变化。为此,必须使变址寄存器的内容实现有规律的变化(如自增1、自减1、乘比例系数)而不改变指令本身,从而使有效地址按变址寄存器的内容实现有规律的变化。
‘叁’ 计算机组成原理第7章习题指导
第7章习题指导
一、假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。
1、设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种:
解答:根据操作数地址码为6位,则二地址指令中操作码的位数为16 – 6 – 6 = 4。这4位操作码可有24=16种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16 – P – Q种。
2、采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种:
解答:采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作码长度分别为4位、10位和16位。可见二地址指令操作码每减少一种,就可多构成26种一地址指令操作码;一地址指令操作码每减少一种,就可多构成26种零地址指令操作码。
因二地址指令有X种,则一地址指令最多有24 X×26种。设一地址指令有M种,则零地址指令最多有24 X×26 M()[()]×26种。根据题中给出零地址指令有Y种,即Y=(24 X)×26 M[]×26,则一地址指令 M=24 X×26 Y×26。
二、设相对寻址的转移指令占3个字节,第一字节为操作码,第二、三字节为相对位移量(补码表示),而且数据在存储器中采用以低字节地址为字地址的存放方式。每当CPU从存储器取出一个字节时,即自动完成 (PC) + 1 → PC。
1、若PC当前值为240(十进制),要求转移到290(十进制),则转移指令的第二、三字节的机器代码是:
解答:PC当前值为240,该指令取出后PC值为243,要求转移到290,即相对位移量为290 –243 = ()47,转换成补码为2FH。由于数据在存储器中采用以低字节地址为字地址的存放方式,故该转移指令的第二字节为2FH,第三字节为00H。
2、若PC当前值为240(十进制),要求转移到200(十进制),则转移指令的第二、三字节的机器代码是:
解答:PC当前值为240,该指令取出后PC值为243,要求转移到200,即相对位移量为200 – 243= – 43,转换成补码为D5H,由于数据在存储器中采用以低字节地址为字地址的存放方式,故该转移指令的第二字节为D5H,第三字节为FFH。
三、设某机共能完成110种操作,CPU有8个通用寄存器(16位),主存容量为4M字,采用寄存器 存储器型指令。
1、欲使指令可直接访问主存的任一地址,指令字长应取多少位,画出指令格式:
解答:欲使指令可直接访问4M字存储器的任一单元,采用寄存器 存储器型指令,该机指令应包括22位的地址码、3位寄存器编号和7位操作码,即指令字长取22 + 3 + 7 =32位,指令格式为7322A。
2、若在上述设计的指令字中设置一寻址特征位X,且X = 1表示某个寄存器作基址寄存器,画出指令格式。试问基址寻址可否访问主存的任一单元,为什么,如不能,提出一种方案,使其可访问主存的任一位置:
解答:上述指令格式中增设一寻址特征位,且X = 1表示某个寄存器作基址寄存器RB。其指令格式为731318XRB由于通用寄存器仅16位,形式地址18位,不足以覆盖4M地址空间。
可将RB寄存器内容左移6位,低位补0,形成22位基地址,然后与形式地址相加,所得的有效地址即可访问4M字存储器的任一单元。
3、若主存容量扩大到4G字,且存储字长等于指令字长,则在不改变上述硬件结构的前提下,可采用什么方法使指令可访问存储器的任一位置:
解答:若主存容量扩大到4G字,且存储字长等于指令字长,则在不改变上述硬件结构的前提下,采用一次间址即可访问存储器的任一单元,因为间址后得到的有效地址为32位,232=4G。
四、某机主存容量为4M×16位,且存储字长等于指令字长,若该机指令系统能完成97种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式。
1、画出一地址指令格式并指出各字段的作用:
解答:一地址指令格式为 OP 操作码字段,共7位,可反映97种操作;M 寻址方式特征字段,共3位,可反映6种寻址方式;A 形式地址字段,共16 – 7 – 3 = 6位。
2、该指令直接寻址的最大范围:
解答:直接寻址的最大范围为26 = 64。
五、设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长均为16位。
1、若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围是多少。一次间址的寻址范围是多少,画出其指令格式并说明各字段的含义:
在单字长指令中,根据能完成105种操作,取操作码7位。因允许直接和间接寻址,且有基址寄存器和变址寄存器,故取2位寻址特征位,其指令格式为:727 其中OP为操作码,可完成105种操作.
M为寻址特征,可反映四种寻址方式;AD为形式地址。 这种指令格式可直接寻址27 = 128,一次间址的寻址范围是216 = 65536。
2、若存储字长不变,可采用什么方法直接访问容量为16MB的主存:
容量为16MB的存储器,正好与存储字长为16位的8M存储器容量相等,即16MB=8M×16位。欲使指令直接访问16MB 的主存,可采用双字长指令。
其操作码和寻址特征位均不变,其格式为7 2 7 AD1AD2,其中形式地址为AD1∥AD2,7+16=23位。223=8M,即可直接访问主存的任一位置。
‘肆’ 指令和数据都存于存储器中,计算机如何区分它们
计算机区分指令和数据有以下2种方法:
1、通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。
2、通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。
存储器中的每段存储空间都会有一个地址,每个指令都包括一段操作数和一段空间地址,cpu会根据操作数去处理地址所指的数据。
一般计算机先读取存储器最开始的内容(这一部分是指令),然后加载操作系统(先是LOADER)后由操作系统对硬盘文件系统结构(即是数据)以判断其他数据和指令的位置
(4)假定指令地址码给出的操作数的存储地址扩展阅读:
构成存储器的存储介质,存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。一个存储器包含许多存储单元,每个存储单元可存放一个字节(按字节编址)。
每个存储单元的位置都有一个编号,即地址,一般用十六进制表示。一个存储器中所有存储单元可存放数据的总和称为它的存储容量。
假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。每个存储单元存放一个字节,则该存储器的存储容量为1MB。
动态存储器每片只有一条输入数据线,而地址引脚只有8条。为了形成64K地址,必须在系统地址总线和芯片地址引线之间专门设计一个地址形成电路。
使系统地址总线信号能分时地加到8个地址的引脚上,借助芯片内部的行锁存器、列锁存器和译码电路选定芯片内的存储单元,锁存信号也靠着外部地址电路产生。
当要从DRAM芯片中读出数据时,CPU首先将行地址加在A0-A7上,而后送出RAS锁存信号,该信号的下降沿将地址锁存在芯片内部。接着将列地址加到芯片的A0-A7上,再送CAS锁存信号,也是在信号的下降沿将列地址锁存在芯片内部。然后保持WE=1,则在CAS有效期间数据输出并保持。
当需要把数据写入芯片时,行列地址先后将RAS和CAS锁存在芯片内部,然后,WE有效,加上要写入的数据,则将该数据写入选中的存贮单元。
由于电容不可能长期保持电荷不变,必须定时对动态存储电路的各存储单元执行重读操作,以保持电荷稳定,这个过程称为动态存储器刷新。
PC/XT机中DRAM的刷新是利用DMA实现的。首先应用可编程定时器8253的计数器1,每隔1⒌12μs产生一次DMA请求,该请求加在DMA控制器的0通道上。当DMA控制器0通道的请求得到响应时,DMA控制器送出到刷新地址信号,对动态存储器执行读操作,每读一次刷新一行。
参考资料来源:网络-存储器
‘伍’ 操作码和操作数保存在什么地方
操作码和地址码都应存入指令寄存器
指令寄存器(IR,Instruction Register),是临时放置从内存里面取得的程序指令的寄存器,用于存放当前从主存储器读出的正在执行的一条指令。
‘陆’ “地址码是指令中给出源操作数地址或运算结果的目的地址的有关信息部分”这句话对吗
地址码是指令中给出“源操作数地址”或“运算结果的目的地址”的有关信息部分
这句话对吗?
对。地址码,确实就是““关于地址””的信息部分。
还有一句话:地址总线上既可以传送地址信息,也可传送控制信息和其他信心。
不对。
地址总线,只是传送地址信息。
控制信息,由控制总线传送。
其他信心,要有另外的线,来传送。
‘柒’ 什么是直接寻址,什么是间接寻址,什么是存储器寻址
直接寻址方式:
指令的地址码部分直接给出的不是操作数,而是操作数的存储器地址,这种方式称为直接寻址方式。根据指令地址码部分给出的直接地址A就可以从存储器中读出所需要的操作数。这种寻址方式简单,直观,也便于硬件实现,但是随着计算机的存储器容量不断扩大,所需要的地址码越来越长,势必造成指令的一部分,不能修改,故只能用来访问固定存储器单元。
如果汇编原程序中跳转指令中使用的是标号,编译后是直接跳转,如果使用了寄存器参量的就是间接跳转的了。
只能说内存寻址的大小与CPU位数有关,但不完全有CPU位数决定,这里有人为的设置,同为64位的CPU,寻址大小、方式也是不一样的,举个例子:
人为限制内存地址用8位2进制数表示,那他的寻址大小是2的8次方,就是256,也就是可以支持256比特大小的内存,以此类推,所以要看你的CPU是怎么定义内存地址的。
如果你为了玩游戏没必要关心这些,只要知道怎么配置快就行了,如果你想学点东西,可以找本书看看,这不是什么复杂的问题,在电子电路中是比较基础的东西,因为不知道寻址方式是无法设计电路和编程的。
你可以去INTEL网站下技术白皮书,里面很详细
‘捌’ 计算机组成原理寻址方式例题
1 变址寻址,操作数的有效地址是变址寄存器的内容+指令地址码的部分.23A0+001A=23BAH,对应的内容就是1700H.
2 间接寻址方式,指令的操作码部分给出的是操作数的有效地址的地址,也就是说001AH的内容是操作数的有效地址,001A中是23A0H.地址为23A0H中的内容就是操作数,也就是2600H.
3 转移指令采用的是相对寻址,是地址码部分+PC的值形成有效地址.当前指令的地址为是1F05H,也就是PC的值.按照答案看,取出当前的指令后,PC的值会加2.就变成了1F07H,再加上001A,就是1F21H.这就是转移的地址.但是感觉题目给的不完整啊.PC的值怎么变化要给出具体的规定.本题是指令取出1个字节,PC+1.
‘玖’ 计算机指令的地址码和操作数是不是一个概念
操作数、操作码、地址码区别
对象:
操作数;
操作码;
地址码
定义:
操作对象;
进行什么操作(操作的代号);
存储器中存储单元的编号
以运东西为例:
运的啥东西;
01(搬)、02(拉)、03(拖) 假设这操作方式都是直观写在纸上的;
房间号01、02、03
注:01(搬)、02(拉)、03(拖)这些指令以代号的形式写在纸上放在房间里,搬运的东西也放在房间里 当然可以在同一房间内
‘拾’ 指令的地址码和指令中的地址码含义有何不同
指令的地址是指在内存中存放指令的位置,是cpu执行取指令操作时需要的数据;指令中的地址码是指指令的操作对象存放在内存中的位置,当指令执行去读写被操作数时需要的数据;这两个概念是完全不一样的