文章
16
粉丝
42
获赞
14
访问
4.9k
问题1解答
• R、Q、Y的初始值:
◦ 由指令流程可知,x在R2(x=0xff,即0xFFFFFFFF),d[i]在R1(d[i]=0x87654321)。补码除法中,余数寄存器R和商寄存器Q拼接为64位,初始时R存放被除数的高位(符号扩展后的x),Q存放被除数的低位(这里x是32位,故Q初始为0);除数寄存器Y存放除数d[i]。
◦ 因此,R = 0xFFFFFFFF(x的符号扩展,32位),Q = 0x00000000,Y = 0x87654321。
• 包含计数器的部分:图中控制逻辑计数器Cn包含计数器。
• ALUop控制的ALU运算:补码除法执行过程中,ALU需进行**减法(用于比较余数与除数的大小)和加法(用于恢复余数等操作)**两种运算。
问题2解答
• 除法异常的情况及机器数:
◦ 除数为0:若d[i] = 0x00000000,x为任意值(如x=0xFFFFFFFF),此时触发除数为0异常。
◦ 溢出:当被除数为0x80000000(最小负整数),除数为0xFFFFFFFF(-1)时,x=0x80000000,d[i]=0xFFFFFFFF,此时商超出32位补码表示范围,触发溢出异常。
• 异常响应过程中CPU的操作:
1. 保存当前程序状态(如PC、寄存器值等)。
2. 跳转到异常处理程序入口地址执行。
3. 处理完异常后,根据情况恢复现场并继续执行或终止程序。
评分及理由
(1)得分及理由(满分4分)
得分:1分
理由:
登录后发布评论
暂无评论,来抢沙发