欢迎来到天天文库
浏览记录
ID:57302280
大小:157.31 KB
页数:7页
时间:2020-08-10
《计算机组成原理第7章习题指导.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机组成原理第7章习题第7章指令系统例7.1假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。(1)设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种?(2)采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?解:(1)根据操作数地址码为6位,则二地址指令中操作码的位数为16–6–6=4。这4位操作码可4有2=16种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16–P–Q种。(2)采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作
2、码长度分别为46位、10位和16位。可见二地址指令操作码每减少一种,就可多构成2种一地址指令操作码;一地址6指令操作码每减少一种,就可多构成2种零地址指令操作码。46因二地址指令有X种,则一地址指令最多有(2−X)×2种。设一地址指令有M种,则零地址指466令最多有[(2−X)×2−M]×2种。根据题中给出零地址指令有Y种,即[(4)6]6Y=2−X×2−M×246−6则一地址指令M=(2−X)×2−Y×2例7.2设相对寻址的转移指令占3个字节,第一字节为操作码,第二、三字节为相对位移量(补码表示),而且数据在存储器中采用以低字节地址为字地址的存放方式。每当CPU从存储
3、器取出一个字节时,即自动完成(PC)+1→PC。(1)若PC当前值为240(十进制),要求转移到290(十进制),则转移指令的第二、三字节的机器代码是什么?(2)若PC当前值为240(十进制),要求转移到200(十进制),则转移指令的第二、三字节的机器代码是什么?解:(1)PC当前值为240,该指令取出后PC值为243,要求转移到290,即相对位移量为290–243=47,转换成补码为2FH。由于数据在存储器中采用以低字节地址为字地址的存放方式,故该转移指令的第二字节为2FH,第三字节为00H。(2)PC当前值为240,该指令取出后PC值为243,要求转移到200,即相
4、对位移量为200–2431计算机组成原理第7章习题=–43,转换成补码为D5H,由于数据在存储器中采用以低字节地址为字地址的存放方式,故该转移指令的第二字节为D5H,第三字节为FFH。例7.3一条双字长直接寻址的子程序调用指令,其第一个字为操作码和寻址特征,第二个字为地址码5000H。假设PC当前值为2000H,SP的内容为0100H,栈顶内容为2746H,存储器按字节编址,而且进栈操作是先(SP)–∆→SP,后存入数据。试回答下列几种情况下,PC、SP及栈顶内容各为多少?(1)CALL指令被读取前;(2)CALL指令被执行后;(3)子程序返回后。解:(1)CALL指令
5、被读取前,PC=2000H,SP=0100H,栈顶内容为2746H。(2)CALL指令被执行后,由于存储器按字节编址,CALL指令共占4个字节,故程序断点2004H进栈,此时SP=(SP)–2=00FEH,栈顶内容为2004H,PC被更新为子程序入口地址5000H。(3)子程序返回后,程序断点出栈,PC=2004H,SP被修改为0100H,栈顶内容为2746H。例7.4某机字长16位,存储器直接寻址空间为128字,变址时的位移量为–64~+63,16个通用寄存器均可作为变址寄存器。设计一套指令系统格式,满足下列寻址类型的要求:(1)直接寻址的二地址指令3条;(2)变址寻
6、址的一地址指令6条;(3)寄存器寻址的二地址指令8条;(4)直接寻址的一地址指令12条;(5)零地址指令32条。试问还有多少种代码未用?若安排寄存器寻址的一地址指令,还能容纳多少条?解:(1)在直接寻址的二地址指令中,根据题目给出直接寻址空间为128字,则每个地址码为7位,其格式如图7.1(a)所示。3条这种指令的操作码为00、01和10,剩下的11可作为下一种格式指令的操作码扩展用。2计算机组成原理第7章习题27700(a)OPA1A2@3条1054711000(b)OPRxA@6条1110184411110000(c)OPRiRj@8条111101119711111
7、0000(d)OPA@12条111111011161111111000000000(e)OP@32条1111111000011111图7.1例7.4五种指令格式(2)在变址寻址的一地址指令中,根据变址时的位移量为–64~+63,形式地址A取7位。根据16个通用寄存器可作为变址寄存器,取4位作为变址寄存器Rx的编号。剩下的5位可作操作码,其格式如图7.1(b)所示。6条这种指令的操作码为11000~11101,剩下的两个编码11110和11111可作为扩展用。(3)在寄存器寻址的二地址指令中,两个寄存器地址Ri和Rj共8位,剩下的8位可作操
此文档下载收益归作者所有