天天看点

自己动手写CPU之第七阶段(8)——验证乘累加指令的实现效果

将陆续上传本人写的新书《自己动手写CPU》,今天是第31篇,我尽量每周四篇

亚马逊的销售地址如下,欢迎大家围观呵!

http://www.amazon.cn/dp/b00mqkrlg8/ref=cm_sw_r_si_dp_5kq8tb1gyhja4

China-pub的销售地址如下:

http://product.china-pub.com/3804025

北发的销售地址如下:

http://book.beifabook.com/Product/BookDetail.aspx?Plucode=712123950&extra=0_s25960657

7.9 测试乘累加、乘累减指令实现效果

.org 0x0
   .set noat
   .global _start
_start:
   ori  $1,$0,0xffff
   sll  $1,$1,16
   ori  $1,$1,0xfffb           # $1 = -5  为寄存器$1赋初值
   ori  $2,$0,6                # $2 = 6   为寄存器$2赋初值

   mult $1,$2                  # hi = 0xffffffff
                               # lo = 0xffffffe2

   madd $1,$2                  # hi = 0xffffffff
                               # lo = 0xffffffc4

   maddu $1,$2                 # hi = 0x5
                               # lo = 0xffffffa6

   msub $1,$2                  # hi = 0x5
                               # lo = 0xffffffc4

   msubu $1,$2                 # hi = 0xffffffff
                               # lo = 0xffffffe2
           

      连续的4条乘累加、乘累减指令,程序的注释给出了预期执行结果。ModelSim仿真如图7-14所示。从中可知,乘累加、乘累减指令实现正确,同时,可以观察到乘累加、乘累减指令都需要两个时钟周期执行完毕。

自己动手写CPU之第七阶段(8)——验证乘累加指令的实现效果

代码下载地址http://download.csdn.net/detail/leishangwen/7858701

下一次将介绍除法指令的实现过程,敬请关注!

继续阅读