指令系统设计.docVIP

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

指令系统设计 1、 确定操作种类 数据传送类: MOV Ri, Rj ;将寄存器Rj当中的内容传送到寄存器Ri LOAD Ri, Rj ;将寄存器Rj中内容作为地址所指向的内存单元中的内容装载到寄存器Ri STOR Ri, Rj ;将寄存器Ri当中的值存储到寄存器Rj中内容作为地址所指向的内存单元 LDD Ri, #Data ;将16位立即数#Data装载到寄存器Ri的低16位,并将Ri的高16位全部填充0[1] LDU Ri, #Data ;将16位立即数#Data装载到寄存器Ri的高16位,Ri的低16位不变 算数运算类: CMP Ri,Rj,比较Ri及Rj中内容的大小 CMP Ri,#Data,ADD Ri, Rj ;Ri+Rj→Ri,可影响标志位或不影响标志位 ADD Ri, #Data ; Ri+#Data→Ri,可影响标志位或不影响标志位,其中#Data为立即数 SUB Ri, Rj ;Ri-Rj→Ri,可影响标志位或不影响标志位 SUB Ri, #Data ; Ri+#Data→Ri,可影响标志位或不影响标志位,其中#Data为立即数 MUL Ri, Rj ;Ri×Rj→Rj Ri,Rj中存放结果的高32位,Ri存放结果的低32位,可影响标志位或不影响标志位 DIV Ri, Rj ;Ri/Rj→Rj Ri,Rj中存放余数,Ri存放商,可影响标志位或不影响标志位 逻辑运算类: ANL Ri, Rj ;Ri AND Rj→Ri ORL Ri, Rj ;Ri OR Rj→RiNOT Ri ;NOT Ri→Ri ANL Ri,#Data,将Ri中的内容及 ORL Ri,#Data,将Ri中的内容及 NAL Ri,Rj 将Ri及Rj中的内容做异或运算结果存到Ri分支转移类: B Ri ;程序跳转至Ri中内容所指向的地址 B Addr ;程序跳转至地址Addr×4 移位操作类: SL Ri ;将寄存器Ri中的内容左移1位,可带进位位或不带进位位 SR Ri ;将寄存器Ri中的内容右移1位,可带进位位或不带进位位 PSW操作类指令 CPYPSW #Data 将PSW中的内容复制到编号为Data的CPSW中,其中作为CPSW编号的4位立即数Data范围为0000~0111 RCVPSW #Data 用编号为Data的CPSW中的内容覆盖PSW寄中的内容,其中作为CPSW编号的4位立即数Data范围为0000~0111 SETSTCK #Data 设置堆栈号,其中4位立即数Data作为堆栈编号,范围为0000~0111 SETGRP #Data 设置第一操作数和第二操作数寄存器的组号,8位立即数Data的高4位为第一操作数寄存器组号,低4位为第二操作数寄存器组号;范围为0000~0111 指令格式 将指令的操作码字段可再细分为执行条件码、操作分类码、操作码、状态码等四个小字段。 其中,执行条件码标明该条指令是否需要在满足某种条件时才执行,占用4位,最多可扩展15种不同的执行条件以及无条件执行。 操作分类码是标明该指令所属的操作分类,目前方案中指令集的分类包括数据传送、移位、算数运算、逻辑运算和分支转移等5类,考虑到以后会扩展I/O指令以及其它有可能的控制指令预设7种分类,占用3位。 操作码标明该条指令的具体操作内容以及操作数的寻址方式,对于数据传送类指令,考虑将来将I/O指令加到这一类中,因此操作码占据4位;对于移位操作类、算数运算类和逻辑操作类,考虑有可能扩展或进行修改,也占用4位;对于分支转移类不考虑扩展,因此不需要此字段,但由于转移地址有两种寻址方式,需要保留1位指示操作数寻址方式。 状态码标明该指令的执行是否影响到状态标记,对于算数运算类、逻辑运算类和移位操作需要该字段,占用1位,其它类操作无需此字段,但为了方便指令译码,对于数据传送类指令仍然保留该字段占位。⑴.分支指令(*代表操作数寻址方式) 执行条件 分类 * 地址码 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ⑵.数据传送、移位、算术运算、移位运算指令(S为状态码) 执行条件 分类 操作码 S 地址码 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 地址码 对于涉及到寄存器操作的指令,寄存器的地址占多少位取决于寄存器数量的多少和分类方式以及编址方式。在这里,系统的寄存器这样设计: 一个标志寄存器PSW,不进行编址,也不能通过程序直接访问,只能通过一些特殊的控制命令访问其部分字段;目前PSW的字段定

文档评论(0)

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

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

1亿VIP精品文档

相关文档