- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理课程设计指导书2015秋课件
课程设计实验
实验目的
首先利用MINISYS中的MIPS指令编写一个小程序;
将简单模型机和小程序一起加载到N4主板上;
能够正确执行编译后的程序,并观察相关的程序。
实验设备
PC机一台,Digilent Nexys 4TM开发板,Xilinx Vivado开发套件,MINISYS汇编器。
实验原理
MINISYS原型结构
MINISYS采用32位MIPS指令中最常用的31条指令,其寄存器组,指令格式等均采用MIPS指令系统相同的格式。共有32个32位寄存器,32位定长格式指令,5种寻址方式。
MINISYS寄存器组
寄存器名寄存器号约定用途$zero0常数0,该寄存器永远只返回0。$at1用做汇编器的暂时变量。$v0~$v12~3用来存放一个子程序(函数)的非浮点运算的结果或返回值。$a0~$a34~7存放子程序(函数)调用时的非浮点参数。$t0~$t78~15暂时变量,子程序(函数)使用时不保存这些寄存器的值,因此调用后它们的值会被破坏。$s0~$s716~238个子程序用寄存器。子程序(函数)必须在返回之前恢复这些寄存器的值以保证其没有变化。$t8~$t924~25暂时变量,子程序(函数)使用时不保存这些寄存器的值,因此调用后它们的值会被破坏。$k0~$k126~27为中断/异常处理保留。由操作系统的异常或中断处理程序使用,不恢复原来的值。$gp28全局指针。某些运行时系统用来为Static或Extern变量提供简单的访问方式。$sp29堆栈指针,对它的调整必须显式的通过指令来实现,硬件不支持堆栈指针的调整。$s8/$fp30第9个子程序用寄存器变量,子程序用它做堆栈帧指针。$ra31存放调用子程序(函数)时的返回地址。
MINISYS指令的寻址方式
立即数寻址
指令中第3操作数可使用16位二进制立即数
寄存器寻址
操作数存放在寄存器中,指令里放的是寄存器号
变址寻址
操作数存放在数据存储器中,其有效地址由两部分组成,基地址放在一个寄存器中,偏移部分为一个16位的立即数
PC相对寻址
操作数是下一条指令的PC值(PC+4)加上一个16位偏移量地址左移两位的值
伪直接寻址
26位偏移地址+PC高4位?30位字地址(MINISYS中直接用26位偏移地址左移两位)
MINISYS端口地址分配表
接口部件首地址数码管0FFFFFC00H4×4键盘(Pmod)0FFFFFC10H定时/计数器0FFFFFC20H脉冲宽度调制器0FFFFFC30H异步串行口0FFFFFC40H看门狗0FFFFFC50HLED0FFFFFC60H拨码开关0FFFFFC70HMINISYS汇编器使用方法
汇编器支持31条指令,采用.asm源文件输入,同时输出结果可以由Xilinx BlockRAM IP核直接加载;
支持4KB, 8KB, 16KB, 32KB, 64KB和128KB存储器。
编译器容许打开多个文档进行编辑,汇编器会选择当前激活的文档进行编译。
支持关键词、数字及注释等的语法高亮,并且可以访问中文路径及添加中文注释(Unicode编码)。
用户还可以进行相关的查找和替换等操作。
MINISYS单周期数据通路
MINISYS汇编程序设计
汇编语句格式
[标号:] 指令助记符 第1操作数 [, 第2操作数 [, 第3操作数]] [# 注释]
[ ]中的内容为可选项
标号可以是以英文字母开头的字母-数字串,可以由字母、数字、下划线,“$”和“.”组成,长度不超过8个字符。注意不要和保留字重名。
标号和指令助记符都不区分字母的大小写
汇编代码是以行为单位的???不支持一行内有多条指令
“#”到行末的是注释部分,但要注意,“#”不要出现在一行的最左列,因为最左列的“#”表示要启用C预编译器
伪指令
数据段定义伪指令
.data [addr]
定义数据段,程序的变量需要在该伪指令下定义。汇编程序应分配和初始化变量的存储空间。如果定义了addr,则该数据段从这个addr地址开始。例:
.data # 数据段开始
buf: .word 128,434,174559,7
.data 0arra: .word 20,70,-15,67
数据定义伪指令
[变量名:] 数据类型 初始值[,初始值[,初始值……]]
变量名是以字母开头的字母数字串,字母包括‘A’~‘Z’26个大写字母和‘a’~‘z’26个小写字母,数字包括‘0’~‘9’,字母大小写不作区分。
类型之后是数据定义的初始值列表,两个数据之间用西文逗号隔开。
数据可以是十六进制
您可能关注的文档
- 计算机病毒概述,启动盘的制作课件.ppt
- 计算机硬件及基本工作原理课件.ppt
- 计算机硬件与接口习题答案(周明德)课件.doc
- 计算机的硬件和软件课件信息技术第一册第三课北京出版社课件.pptx
- 计算机的前世今生课件.ppt
- 计算机硬件技术基础MSP430_复习知识点课件.docx
- 计算机第三章课件.ppt
- 计算机笔试模拟题全(含答案)课件.docx
- 计算机科学导论实验指导书课件.doc
- 计算机病毒分析课件.ppt
- 生物医药行业:医保预付金制度进一步完善,释放积极信号.pdf
- 电子:24Q3AIPC市场保持强劲发展步伐,AI终端持续出新.pdf
- 家用电器:当“双11”遇见“以旧换新”,内销景气突出.pdf
- 国防军工行业报告:多型新装备首次亮相珠海航展,中国军贸出口崛起势不可挡.pdf
- 电力设备与新能源行业研究:出口退税率下调是中长期显著利好,风光储内需积极信号频现.pdf
- 建材行业2025年投资策略:经济政策发力,建材预期反转.pdf
- 食品饮料行业:社零数据回暖,关注板块分化.pdf
- 高股息专题:机械板块股息率复盘与高股息组合筛选.pdf
- 社会服务行业2024年三季度业绩综述报告:业绩持续向好,行业景气度上行.pdf
- 机床设备2024三季报总结:营收回归正增长,Q3呈现恢复向好态势.pdf
文档评论(0)