




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HUNAN UNIVERSITY实验一 熟悉WinDLX的使用 学生班级:计科2班 学生姓名:杨凌霄一实验目的:通过本实验,熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点。二实验内容:(一)WinDLX的安装:1. WinDLX是一个基于Windows的模拟器, 能够演示DLX流水线是如何工作的。WinDLX 包含windlx.exe和windlx.hlp文件。同时,还需要一些扩展名为.s的汇编代码文件。按以下步骤在Windows下安装WinDLX:1 WinDLX创建目录,例如D:WINDLX2 解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含 windlx
2、.exe, windlx.hlp)到这个WinDLX 目录。2. 启动和配置WinDLX: 双击WinDLX图标,将出现一个带有六个图标的主窗口,双击这些图标会弹出子 窗口. 为了初始化模拟器, 点击File 菜单中的 Reset all 菜单项,弹出一个“ResetDLX”对话框。然后点击窗口中的“确认”按钮即可。(二)程序介绍1. 求阶乘程序fact.s这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。2. 程序gcm.sgcm.s程序从标准输入读入两个整数,求他们的greatest c
3、ommon measure,然后将结果写到标准输出。3. 求素数程序prim.sprim.s程序计算若干个整数的素数。三、实验程序1求阶乘程序Fact.s:;-; Program begin at symbol main; requires module INPUT; read a number from stdin and calculate the factorial (type: double); the result is written to stdout;- .dataPrompt: .asciiz An integer value 1 : PrintfFormat: .ascii
4、z Factorial = %gnn.align 2PrintfPar: .word PrintfFormatPrintfValue: .space 8.text.global mainmain:;* Read value from stdin into R1addi r1,r0,Promptjal InputUnsigned;* init valuesmovi2fp f10,r1 ;R1 - D0 D0.Count registercvti2d f0,f10addi r2,r0,1 ;1 - D2 D2.resultmovi2fp f11,r2cvti2d f2,f11movd f4,f2
5、;1- D4 D4.Constant 1;* Break loop if D0 = 1Loop: led f0,f4 ;D0 Exitbnez r5,Finishsubi r3,r3,48 ;?multu r1,r1,r4 ;Shift decimaladd r1,r1,r3addi r2,r2,1 ;increment pointerj LoopFinish: ;* restore old register contentslw r2,SaveR2lw r3,SaveR3lw r4,SaveR4lw r5,SaveR5jr r31 ; Retur3求最大公约数程序:gcm.s;-; Prog
6、ram begins at symbol main; requires module INPUT; Read two positive integer numbers from stdin, calculate the gcm; and write the result to stdout;-.data;* Prompts for inputPrompt1: .asciiz First Number:Prompt2: .asciiz Second Number: ;* Data for printf-TrapPrintfFormat: .asciiz gcM=%dnn.align 2Print
7、fPar: .word PrintfFormatPrintfValue: .space 4.text.global mainmain:;* Read two positive integer numbers into R1 and R2addi r1,r0,Prompt1jal InputUnsigned ;read uns.-integer into R1add r2,r1,r0 ;R2 R2 ?bnez r3,r1Greaterr2Greater: ;* subtract r1 from r2sub r2,r2,r1j Loopr1Greater: ;* subtract r2 from
8、r1sub r1,r1,r2j LoopResult: ;* Write the result (R1)sw PrintfValue,r1addi r14,r0,PrintfPartrap 5;* endtrap 04求素数程序prim.s:;-; Program begins at symbol main; generates a table with the first Count prime numbers from Table;-.data;* size of table.global CountCount: .word 10.global TableTable: .space Cou
9、nt*4.text.global mainmain:;* Initializationaddi r1,r0,0 ;Index in Tableaddi r2,r0,2 ;Current value;* Determine, if R2 can be divided by a value in tableNextValue: addi r3,r0,0 ;Helpindex in TableLoop: seq r4,r1,r3 ;End of Table?bnez r4,IsPrim ;R2 is a prime numberlw r5,Table(R3)divu r6,r2,r5multu r7
10、,r6,r5subu r8,r2,r7beqz r8,IsNoPrimaddi r3,r3,4j LoopIsPrim: ;* Write value into Table and increment indexsw Table(r1),r2addi r1,r1,4;* Count reached?lw r9,Countsrli r10,r1,2sge r11,r10,r9bnez r11,FinishIsNoPrim: ;* Check next valueaddi r2,r2,1 ;increment R2j NextValueFinish: ;* endtrap 0四窗口介绍第一次打开W
11、INDLX模拟器,我们可以看到如下六个小窗口。1 Register 窗口Register窗口显示寄存器中的内容。为此,双击 主窗口中的Register 图标。Register 窗口会显示各个寄存器中的内容。看一下R1到 R5的值。按F5使模拟继续运行到下一个断点处,有些值将发生改变。2 Code 窗口该窗口代表存储器内容的三栏信息,从左到右依次为:地址 (符号或数字)、命令的十六进制机器代码和汇编命令。 点击 主窗口中的 Execution开始模拟。在出现的下拉式菜单中,点击Single Cycle或按 F7键。这时,窗口中带有地址“$TEXT ”的第一行变成黄色。按下 F7 键,模拟就向前执
12、行一步,第一行的颜色变成橘黄色,下一行变成黄色.。这些不同颜色指明命令处于流水线的哪一段。3 Pipeline 窗口Pipeline窗口显示DLX处理器的内部结构。窗口中用图表形式显示了DLX的五段流水线。你应尽可能地扩大此窗口,以便处于不同流水段的指令都能够在图表中显示。 4 Clock Cycle Diagram 窗口该窗口使所有子窗口图标化,然后打开Clock Cycle Diagram 窗口。它显示流水线的时空图。该时空图中显示了每一个时隙内的运行情况。对准Clock cycle diagram窗口中相应命令所在行,然后双击它,弹出一个新窗口。窗口中会详细显示每一个流水段处理器内部的执
13、行动5 Statistics 窗口该窗口是对运行程序中数据的分析。Statistics 窗口提供各个方面的信息:模拟中硬件配置情况、暂停及原因、条件分支、 Load/Store指令、浮点指令和traps。窗口中给出事件发生的次数和百分比。在静态窗口中我们可以比较一下不同配置对模拟的影响。6 Breakpoint 窗口通过Code 窗口可以观察代码 (如果未打开,双击图标 Code),可以通过Breakpoint 来观察代码运行的情况。单击Set Breakpoint ,将弹出一个新的Set Breakpoint 窗口。通过此窗口,可以选择命令运行到流水线的哪一阶段时,程序停止执行。缺省为ID段
14、。点击OK 关闭窗口。在Code 窗口中,相应行上出现 了BID ,它表示当本指令在译码段时,程序中止执行。如果想查看已定义的断点,你只要单击图标Reakpoints,将弹出一个小窗口,其中显示了所有断点。重新使窗口图标化。点击Execution / Run 或按F5,模拟就继续运行。会出现一个对话框提示ID-Stage: reached at Breakpoint #1,按“确认”按钮关闭。五、实验过程(1) 通过双击 WinDLX 图标启动WinDLX,将出现一个带有六个图标的主窗口: (2)进行初始化模拟器, 点击File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX”对话框。然后点击窗口中的“确认”按钮即可。(3)在开始模拟之前,至少应装入一个程序到主存。为此,选择File
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- “醉驾”型危险驾驶罪综合治理模式的实践探索与反思
- 农村供水绩效管理办法
- 标准化管理下的消毒供应中心质量控制体系构建与实践
- 民政小区车辆管理办法
- 小学篮球社团活动方案
- 220kV变电站工程试运行流程与解析
- 古代文学专题:经典文本与思想传承研究
- 公共平台建设管理办法
- 大豆籽粒营养成分与豆乳品质的关系分析
- 高考期间食堂食品安全保障措施
- 2024年江苏三支一扶真题
- 《危险货物港口作业重大事故隐患判定指南》解读与培训
- 主、被动防护网施工方案-图文
- 2025年初中语文文学常识:常考100题汇编
- 君易和文化课件
- 药食同源106种25年4月更新
- 2025年江苏省南通市中考英语适应性试卷(A卷)
- 无机盐在化妆品行业的应用研究考核试卷
- 猪场生产安全
- 2025年度苗圃土地承包合同-观光树种植与生态旅游产业链投资合作框架
- 《城市供水》课件
评论
0/150
提交评论