|
|
MAPROM地址
(指令操作码) |
MAPROM内容
(微指令地址)
|
|
|
ADD
|
0000 ×××× |
06
|
|
|
SUB
|
0001 ×××× |
07
|
扩 0101 ×××× 40 |
|
AND
|
0010 ×××× |
08
|
0110 ×××× 44 |
|
CHP
|
0011 ×××× |
09
|
0111 ×××× 48 |
|
MOV
|
0100 ×××× |
|
|
|
|
|
|
|
|
SHR
|
1010 00×× |
OB
|
扩 1000 00×× 50 |
|
SHL
|
1010 00×× |
OD
|
1000 01×× 54 |
|
IN
|
1010 10×× |
OE
|
1000 10×× 58 |
|
OUT
|
1010 11×× |
OF
|
1000 11×× 5C |
|
|
1011 1××× |
14
|
;LOD,STO |
|
|
1011 00×× |
1D
|
;PUSH,PSHF |
| |
1011 01×× |
21
|
;POP,POPF |
|
INC
|
1100 10×× |
12
|
|
|
|
1100 00×× |
12
|
|
|
DEC
|
1100 11××(?) |
OA
|
|
|
TPC
|
1100 0100 |
32
|
|
|
FPC
|
1100 0101 |
34
|
|
|
TSP
|
1100 0110 |
36
|
|
|
FSP
|
1100 0111 |
38
|
扩 1110 0000 60 70 |
|
MVD
|
1101 ×××× |
17
|
1110 0001 64 74 |
|
JK
|
1110 1100 |
17
|
68 78 |
|
JNZ
|
1110 1001 |
17
|
1110 0111 6C 7C |
|
JZ
|
1100 1000 |
17
|
|
|
JNC
|
1100 1011 |
17
|
|
|
JC
|
1100 1010 |
17
|
扩 1111 0000 90 |
|
CLC
|
1111 1000 |
10
|
1111 0001 94 |
|
SJC
|
1111 1001 |
11
|
1111 0010 98 |
|
PUSHF
|
1111 1010 |
2D
|
1111 0011 9C |
|
POPF
|
1111 1011 |
21
|
1111 0100 A0 |
|
CALL
|
1111 1100 |
24
|
1111 0101 A4 |
|
RET
|
1111 1101 |
2C
|
1111 0110 A8 |
|
JMP
|
1111 1111 (?) |
2A
|
1111 0111 AC |
有2个问题需要说明。第一个问题,由于TEC-3机为8位字长,采用操作码扩展技术,所以在确定MAPROM的地址时都必须定位在8位字长,当操作码为4位时,如ADD指令操作码为0000,就必须把00000000~00001111这16个单元的MAPROM的内容都确定为06(16进制表示)。SHR指令的操作码为101000,就必须把10100000~10100011这4个单元的MAPROM的内容都确定为06。类似的处理也应用于其他指令。
另一个问题,是如何对待扩展指令。我们简单地为每一条可扩展指令分配4个控存单元,全部安排在原有微指令在控存中所占位置的后面。对某些扩展指令,4个控存单元不够用怎么办?这不会成为任何问题,因为只需将其多于4条的微指令分配到控存中其他未用空间并适当连接起来就可以了。
|
|