当前位置:启航官网 > 考研报考 > 试题

(13分)有实现x*y的两个C语言函数如下:unsignedumul(unsig

(13分)有实现x*y的两个C语言函数如下:

unsignedumul(unsignedx,unsignedy)

{return x*y;}

Int imul(intx,inty)

{return x*y;}

假定某计算机 M 中 ALU只能进行加减运算和逻辑运算。请回答下列问题:

(1)若 M 的指令系统中没有乘法指令,但有加法、减法和位移等指令,则在 M 上也能实现上

述两个函数中的乘法运算,为什么?

(2)若 M 的指令系统中有乘法指令,则基于 ALU、位移器、寄存器以及相应控制逻辑实现乘

法指令时,控制逻辑的作用是什么?

(3)针对以下3种情况:(a)没有乘法指令;(b)有使用 ALU 和位移器实现的乘法指令;

(c)有使用阵列乘法器实现的乘法指令,函数umul()在哪种情况下执行时间最长,哪种情况

下执行的时间最短? 说明理由。

(4)n位整数乘法指令可保存2n位乘积,当仅取低n位作为乘积时,其结果可能会发生溢

出。当n=32,x=231-1,y=2时,带符号整数乘法指令和无符号整数乘法指令得到的x*y

的2n位乘积分别是什么(用十六进制表示)? 此时函数umul()和imul()的返回结果是否溢

出? 对于无符号整数乘法运算,当仅取乘积的低n位作为乘法结果时,如何用2n位乘积进

行溢出判断?

查看答案和解析

【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。

免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。 如果本站文章侵犯到您的权利,请联系我们(400-108-7500)进行删帖处理。

启航教育热门私房课

MORE
  • 26考研VIP领学计划

    全程跟进
    形式:线上+线下
     

    查看详情

    在线咨询

  • 25考研专属VIP班

    联报优惠
    形式:线上
     

    查看详情

    在线咨询

  • 25在职考研课程

    专为在职人定制
    形式:线上
     

    查看详情

    在线咨询

2025考研

小班面授 名额有限 抢先体验

点击预约 

为你推荐