资源描述
TEC-2000教学计算机十六位机指令系统
一、指令系统格式
TEC-200教学计算机共规划了58条指令,实现了其中的29条基本指令,其余的19条扩展指令保留给用户自在教学实验中进行扩展,即完成对这些指令的设计与调试。
教学机支持单字和双字指令。第一个指令字的高8位为指令操作码字段,低8位和双字指令的第二个字为操作数、地址字段,共有三种格式:
操作码
DR
SR
I/O端口地址∕相对偏移量
立即数∕直接存储器地址∕变址偏移量
十六位机根据指令长度、操作数不同划分为6种指令格式。
1、单字、无操作数指令
格式:
操作码
0000 0000
基本指令:
PSHF ;状态标志寄存器(C、Z、V、S、P1、P0)入栈
POPF ;弹出栈顶数据送入状态标志寄存器
RET ;子程序返回
扩展指令:
CLC ;清进位标志位C(C←0)
STC ;置进位标志位C(C←1)
EI ;开中断,即置中断允许位
DI ;关中断,即清中断允许位
IRET ;中断返回
2、单字、单操作数指令
格式:
操作码
RD 0000
0000 SR
OFFSET
I/O Port
基本指令:
DEC DR ;DR←DR-1
INC DR ;DR←DR+1
SHL DR ;DR逻辑左移,最低位补0,最高位移入C
SHR DR ;DR逻辑右移,最高位补0,最低位移入C
JR offset ;无条件转移到ADR,ADR=PC值+Offset
JRC offset ;当C=1时转移到ADR,ADR=PC值+Offset
JRNC offset ;当C=0时转移到ADR,ADR=PC值+Offset
JRZ offset ;当Z=1时转移到ADR,ADR=PC值+Offset
JRNZ offset ;当Z=0时转移到ADR,ADR=PC值+Offset
IN I/O port ;I/O端口输入,R0←[I/O Port]
OUT I/O port ;I/O端口输出,[I/O Port]←R0
PUSH SR ;SR入栈
POP DR ;弹出栈顶数据送入DR
扩展指令:
RCL DR ;DR与C循环左移,C移入DR最低位,DR最高位移入C
RCR DR ;DR与C循环右移,C移入DR最高位,DR最低位移入C
ASR DR ;DR算术右移,最高位保持不变,最低位移入C
NOT DR ;DR求反,即DR←/DR
JMPR SR ;无条件转移到SR指向的地址
CALR SR ;调用SR指向的子程序
JRS offset ;当S=1时转移到ADR,ADR=PC值+Offset
JRNS offset ;当S=0时转移到ADR,ADR=PC值+Offset
3、单字、双操作数指令
格式:
操作码
DR
SR
基本指令:
ADD DR, SR ;DR←DR+SR
SUB DR, SR ;DR←DR-SR
AND DR, SR ;DR←DR∧SR
CMP DR, SR ;DR-SR
XOR DR, SR ;DR←DR⊕SR
TEST DR, SR ;DR∧SR
OR DR, SR ;DR←DR∨SR
MVRR DR, SR ;DR←SD
LDRR DR, SR ;DR←[SR]
STRR DR, SR ;[DR]←SR
扩展指令:
ADC DR,SR ;DR←DR+SR+C
SUBB DR,SR ;DR←DR-SR-C
4.双字、单操作数指令
格式:
操作码
0000 0000
ADR
基本指令:
JMPA ADR ;无条件转移到地址ADR
CALA ADR ;调用首地址为ADR的子程序
5.双字、双操作数指令
格式1:
操作码
DR 0000
0000 SR
DATA/ADR
基本指令:
MVRD DR, DATA ;DR←DATA
扩展指令:
LDRA DR, [ADR] ;DR←[ADR]
STRA [ADR], SR ;[ADR]←SR
格式2:
操作码
DR
SR
OFFSET
扩展指令:
LDRX DR, offset[SR] ;DR←[offset+SR]
STRX offset[SR],DR ;[offset+SR]←DR
二、 TEC-2000 十六位指令汇总表
1、基本指令
指令
类型
指令格式
汇编语言
操作数
个数
C Z V S
功能说明
A
组
00000000 DRSR
ADD DR,SR
2
* * * *
DR←DR+SR
00000001 DRSR
SUB DR,SR
2
* * * *
DR←DR-SR
00000010 DRSR
AND DR,SR
2
* * * *
DR←DR∧SR
00000011 DRSR
CMP DR,SR
2
* * * *
DR-SR
00000100 DRSR
XOR DR,SR
2
* * * *
DR←DR⊙SR
00000101 DRSR
TEST DR,SR
2
* * * *
DR∧SR
00000110 DRSR
OR DR,SR
2
* * * *
DR←DR∨SR
00000111 DRSR
MVRR DR,SR
2
····
DR←SR
00001000 DR0000
DEC DR
1
* * * *
DR←DR-1
00001001 DR0000
INC DR
1
* * * *
DR←DR+1
00001010 DR0000
SHL DR
1
*···
DR←DR*2
00001011 DR0000
SHR DR
1
*···
DR←DR/2
01000001 OFFSET
JR ADR
1
····
无条件跳转的ADR
01000100 OFFSET
JRC ADR
1
····
C=1 时跳转的ADR
01000101 OFFSET
JRNC ADR
1
····
C=0 时跳转的ADR
01000110 OFFSET
JRZ ADR
1
····
Z=1 时跳转的ADR
01000111 OFFSET
JRNZ ADR
1
····
Z=0 时跳转的ADR
B
组
10000000 00000000
ADR(16位)
JMPA ADR
1
····
无条件跳转到ADR
10000001 DRSR
LDRR DR,[SR]
2
····
DR←[SR]
10000010 I/O port
IN I/O port
1
····
R0←[I/O,PORT]
10000100 DRSR
STRR [DR],SR
2
····
[DR] ←SR
10000100 00000000
PSHF
0
····
FLAG入栈
10000110 0000SR
PUSH SR
1
····
SR 入栈
10000110 I/O port
OUT I/O port
1
····
[I/O,PORT] ← R0
10000111 DR0000
POP DR
1
····
DS ←出栈
10001000 DR0000
DATA(16位)
MVRD DATA
2
····
DR ←DATA
10001100 00000000
POPF
0
····
FLAG ←出栈
10001111 00000000
RET
0
····
子程序返回
D
组
11001110 00000000
ADR(16位)
CALL ADR
1
····
调用首地址为ADR的子程序
说明:
1)表中CZVS一栏,*表示该标志位在指令执行后被重置,·表示该标志位不受指令执行的影响。
2)运算器中有16个通用寄存器R0-R15,其中R5、R4用作16位的堆栈指针SP,R7、R6用作16位的程序计数器PC,其余寄存器用作通用寄存器,即有关指令中的DR,SR。
2、扩展指令
指令
类型
指令格式
汇编语言
操作数
个数
C Z V S
功能说明
A
组
00100000 DRSR
ADC DR,SR
2
* * * *
DR←DR+SR+C
00100001 DRSR
SBB DR,SR
2
* * * *
DR←DR-SR-C
00100010 DR0000
RCL DR
1
*···
DR←DR带进位C循环左移
00101011 DR0000
RCR DR
1
*···
DR←DR带进位C循环右移
00101100 DR0000
ASR DR
1
*···
DR←DR算术右移
01101101 DR0000
NOT DR
1
* * * *
DR←/DR
01100000 0000SR
JMPR SR
1
····
跳转到SR指明的地址
01100100 OFFSET
JRS ADR
1
····
S=1 跳转到ADR
01100101 OFFSET
JRNS ADR
1
····
S=0 跳转到ADR
01101100 00000000
CLC
0
0···
C=0
01101101 00000000
STC
0
1···
C=1
01101110 00000000
EI
0
····
开中断,INTE ←1
01101111 00000000
DI
0
····
关中断,INTE ←0
C
组
11100000 0000SR
CALR SR
1
····
调用SR指明的子程序
11000100 DR0000
ADR(16位)
LDRA DR,[ADR]
2
····
DR←[ADR]
11100101 DRSR
OFFSET(16位)
LDRX R,offset[SR]
2
····
DR←[OFFSETT+SR]
11100110 DRSR
OFFSET(16位)
STRX DR,offset[SR]
2
····
[OFFSETT+SR] ← DR
11100111 0000SR
ADR(16位)
STRA [ADR],SR
1
····
[ADR] ←SR
D组
11101111 0000000
IRET
0
····
中断返回
4
展开阅读全文