408计算机组成原理---指令系统应用题分析(1)

文章讨论了CISC架构中的计算机如何处理整型和浮点型数值运算,如int类型的大小限制导致的死循环,以及不同指令对数值计算的影响,重点分析了溢出问题和浮点数阶码与尾数的表示。

 (1) n=0时,n-1的机器表示为FFFF FFFFH,而变量i的int类型所能表示的最大真值为7FFF FFFFH,则i++无论如何执行,也无法大于n-1,发生死循环。i和n定义为int型,f1不会出现死循环,因为i的机器表示可以达到8000 0000H,此时真值小于-1。

 (2) f1(23)返回值为2^{24}-1,机器表示为00FF FFFFH,f2(23)的返回值的机器表示4B7F FFFFH,返回值是相等的。

 (3) f1(24)的返回真值为2^{25}-1,机器表示为01FF FFFFH,而f2(24)的机器表示为4B8F FFFFH,而尾数的精度此时已经不够了,此时最后一位尾数表示2^{-23},而阶码表示的真值为2^{24},最小可以表示的尾数为2,此时最后一个1发生了丢失。

 (4) 因为此时f1(31)的机器表示为FFFF FFFFH,表示的真值为-1。要使f1(n)的返回值与f(n)相等,则最大的n为30

(5) f2(127)的机器数为7F80 0000H,阶码为128,而尾数为全0,对应的值为正无穷,若要使得f2(n)的结果不溢出,最大的n为127,要使f2(n)的结果精确,最大的n为23。(由之前题目得到结论)

(1)  计算机M是CISC的,因为指令码长度是不定长的。

  (2)    按字节编址,指令占用的地址空间为00401020H-0040107FH,107FH-1020H+1H=5FH+1H=60H,一共占用6*16B=96B。

  (3)   n-1的机器数表示为FFFF FFFFH,i=0时,cmp指令执行后,i-n+1=0000 0000H-FFFF FFFFH=0000 0001H,最高位未发生进位,而减法sub为1,进行异或操作后得到CF=1。

  (4)  在f2中不可以使用shl指令实现power*2,因为float型的数要实现power*2应当使阶码值+1而非使机器数左移。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值