打印

常数发生器CG1和CG0

[复制链接]
3321|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
拿起书本|  楼主 | 2012-5-24 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
经常使用的常数可以用常数发生器产生,而不必占用一个16位字。所用常数的数值由寻址位As来定义,硬件完全自动地产生数字:-1、0、1、2、4、8,如下
                常 数 发 生 器 C G 1 和 C G 2 的 值

寄存器        As           常数                      说明
R2             00           _                        寄存器模式
R2             01           (0)                     绝对寻址模式
R2             10          00004H               +4位处理
R2             11          00008H               +8位处理
R3             00          00000H               0字处理
R3             01          00001H                +1
R3             10          00002H                +2位处理
R3              11         0FFFFH                 -1字处理
使用这种方法产生常数的优点如下:
1:不需要特殊的指令。
2:对6种最常用的常数不需要额外的字操作数。
3:不用访问数据存储器,缩短指令周期。
4:当6种常数之一被用作立即寻址模式的源操作数时,汇编程序会自动转为利用R2或R3的方式。状态寄存器SR/R2只能用于寄存器模式。其他的寻址位As 组合支持绝对寻址和位处理,而不必增加代码。R2与R3用于常数发生器时不进行显式寻址,它们只能作为一个寄存器数据源。
5:常数发生器使得某些指令可用别的指令来模拟。用这种方法使CPU变得异常简单,整个指令组只需要27条指令。如操作数指令

CLR

或等价的有:

MOV      #0,dst

其中#0由汇编程序以As=00的R3来取代。

相关帖子

沙发
huangfeng33| | 2012-5-24 22:33 | 只看该作者
很实用的资料,很好的使用技术,谢谢楼主的奉献。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4195

帖子

31

粉丝