基于微程序设计的嵌入式CISC-CPU模型的实现.docVIP

基于微程序设计的嵌入式CISC-CPU模型的实现.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于微程序设计的嵌入式CISC-CPU模型的实现

计算机硬件实验报告 基于微程序设计的嵌入式CISC CPU模型的实现学  院:专 业:学生姓名: 学 号: 基于微程序设计的嵌入式CISC CPU模型的实现 2 一、实验题目 2 二、嵌入式CISC模型机数据通路框图 2 三、微程序控制器(CISC模型机)的逻辑结构框图 2 四、模型机的指令系统和指令格式 3 五、机器指令的微程序流程图 3 六、CISC模型机的顶层电路图 4 七、汇编语言源程序 4 八、机器语言源程序 5 九、微命令格式和微指令代码表 5 十、仿真波形图及其分析 7 十一、故障现象和分析以及心得体会 9 十二、软件清单 10 1.运算器和状态条件寄存器单元 10 2.通用寄存器单元LS273 12 3.地址寄存器单元LS273 12 4.指令寄存器单元LS273 12 5.1:2分配器FEN2 12 6.4选1数据选择器单元MUX4 13 7.5选1数据选择器单元MUX5 14 8.程序计数器单元PC 15 9.主存储器单元ROM 16 10.时序产生器单元COUNTER 17 11.操作控制单元CROM 18 基于微程序设计的嵌入式CISC CPU模型的实现 ①5个有符号数从外部输入,并依次存放在RAM的某一连续的存储区域内; ②一定要使用符号标志位(比如说SF),若涉及到大于、大于等于、小于、小于等于、为负或为正时跳转,等等之类的条件转移指令时,至少要判断符号标志位; ③算术运算类指令要求都采用有符号数的运算,并锁存标志位。 二、嵌入式CISC模型机数据通路框图 三、微程序控制器(CISC模型机)的逻辑结构框图 四、模型机的指令系统和指令格式 指令助记符 指令格式 功能 IN1 Rd 1100 ×× Rd 将数据存到Rd寄存器 OUT1 Rs 1111 Rs ×× (RS)→LED MOV1 data,Rd 0010 ×× Rd DATA→RD data MOV2 RS,[RD] 0011 RS RD RS→[RD] MOV3 [RS],RD 0100 RS RD [RS]→RD MOV4 RS,RD 0101 RS RD RS→RD CMP Rs,Rd 1001 RS RD RS-RD 锁存CY和ZI TEST data,RD 1010 ×× Rd 测试Rd寄存器中的值 data 锁存CY和ZI INC Rd 1011 ×× Rd Rd+1→Rd JB addr 1100 ×× ×× 若小于,则addr→PC data JZ addr 1101 ×× ×× 若全为零,则addr→PC Data 五、机器指令的微程序流程图CISC模型机的顶层电路图 七、汇编语言源程序算法思想为:RR1寄存器初始化为5,R0寄存器存入输入的数据,然后将R0中的数存入以R2寄存器中的数为地址的RAM中,R2寄存器自增一,再和R1寄存器中的数进行比较,如果小于则再输入下一个数,如此循环五次,把输入的五个数存入RAM中。当R2寄存器中数和R1中相等时,则进入负数判定和负数间的比较。 R2寄存器初始化为0, R0寄存器初始化为80H(即-128)。把RAM中以R2中的数为地址的的数取出来放在R3中,然后R2自增一,为取下一个数做准备。接下来测试R3中的数是否为负数,如果不是则跳到L3处,判断是否已经取完了五个数,若取完则输出R0,未取完则跳转到L2,从RAM中取下一个数。如果是负数,则和R0中的数进行比较。如果R3中的数比R0中的数小,则跳到L3处进行判断,从RAM中取下一个数或者输出R0,否则将R0中的数替换为R3中的数。即,每次比较完后R0中都保存的是最大的负数。接着比较R2与R1,判断是否已经取完了五个数,若R2小于R1则跳转到L2,直到RAM中的数取完为止。如此循环五次,最后输出R0中的数,即最大的负数。 源程序 功能 MOV1 00,R2 将立即数00→R2,用于循环计数 MOV1 05,R1 将立即数05→R1,用于设定最大循环次数 L1: IN1 R0 从开关输入任意整数的补码给R0 MOV2 R0,[R2] 将外部输入数据存到RAM INC R2 CMP R2,R1 比较R2、R1,以确定是否输入5个数据,锁存FC,FZ JB L1 若FC=1且FZ=0,则跳转到L1 MOV1 00,R2 将立即数00→R2,用于循环计数 MOV1 80H,R0 将最小负数的补码给R0 L2: MOV3 [R2],R3 取RAM中的数据给R3 INC R2 TEST 80H,R3 测试符号位,锁存FZ JZ L

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档