经常使用的常数可以用常数发生器产生,而不必占用一个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来取代。 |