网站大量收购独家精品文档,联系QQ:2885784924

windlx实验报告(浮点运算,forward 转移指令).doc

windlx实验报告(浮点运算,forward 转移指令).doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windlx实验报告(浮点运算,forward 转移指令)

WinDLX模拟器模拟实验 1 实验目的 熟悉加深对流水线及RISC处理器的理解。 2 实验环境 WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。模拟器还提供了对流水线操作的统计功能。该模拟器对理解流水线和RISC处理器的特点很有帮助。 3 实验步骤 一.使用WinDLX模拟器,对Fact.s做如下分析: (1) 考察增加浮点运算部件对性能的影响。 (2) 考察增加forward部件对性能的影响。 (3) 观察转移指令在转移成功和转移不成功时候的流水线开销。 4 实验内容和要求 1. 针对上面的实验内容,记录实验过程,给出分析结果。 2. 给出实验总结:根据实验,总结采用流水线技术会遇到的问题和为解决这些问题所采用的各种技术的作用。同时简单谈谈自己对流水线技术的认识。 5实验程序代码 5.1 Fact.s程序代码: .data Prompt: .asciiz An integer value 1 : PrintfFormat: .asciiz Factorial = %g\n\n .align 2 PrintfPar: .word PrintfFormat PrintfValue: .space 8 .text .global main main: ;*** Read value from stdin into R1 addi r1,r0,Prompt jal InputUnsigned ;*** init values movi2fp f10,r1 ;R1 - D0 D0..Count register cvti2d f0,f10 addi r2,r0,1 ;1 - D2 D2..result movi2fp f11,r2 cvti2d f2,f11 movd f4,f2 ;1- D4 D4..Constant 1 ;*** Break loop if D0 = 1 Loop: led f0,f4 ;D0=1 ? bfpt Finish ;*** Multiplication and next loop multd f2,f2,f0 subd f0,f0,f4 j Loop Finish: ;*** write result to stdout sd PrintfValue,f2 addi r14,r0,PrintfPar trap 5 ;*** end trap 0 5.2 Input.s程序代码: .data ;*** Data for Read-Trap ReadBuffer: .space 80 ReadPar: .word 0,ReadBuffer,80 ;*** Data for Printf-Trap PrintfPar: .space 4 SaveR2: .space 4 SaveR3: .space 4 SaveR4: .space 4 SaveR5: .space 4 .text .global InputUnsigned InputUnsigned: ;*** save register contents sw SaveR2,r2 sw SaveR3,r3 sw SaveR4,r4 sw SaveR5,r5 ;*** Prompt sw PrintfPar,r1 addi r14,r0,PrintfPar trap 5 ;*** call Trap-3 to read line addi r14,r0,ReadPar trap 3 ;*** determine value addi r2,r0,ReadBuffer addi r1,r0,0 addi r4,r0,10 ;Decimal system Loop: ;*** reads digits to end of line lbu r3,0(r2) seqi r5,r3,10 ;LF - Exit bnez r5,Finish subi r3,r3,48 ;?? multu r1,r1,r4 ;Shift decimal add r1,r1,r3 addi r2,r2,1 ;increment pointer j Loop Finish: ;*** restore old register conte

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档