教学计算机目前提供了64条基本机器指令,其中的53条的指令格式、功能已完全确定,并已用微程序与组合逻辑两种控制方案实现,可供用户编程使用;
尚保留11条交由实验者定义与实现。从计算机组成原理课的教学与实验的角度考虑,不会要求学生编写较长的程序,一般十几行到几十行对一些实验基本够用,此时,是可以用机器语言直编编程的。当教学计算机系统中没有接入计算机终端(或PC机)等输入输出设备,也没有购买由键盘和液晶显示构成的简易输入输出选件设备的情况下,实验者只能用开关向教学计算机内拨入由机器指令组成的程序。这种方式下的操作与实验效率是很低的,我们提供但并不推荐这种运行方式。具体操作步骤,第三章有详细说明。
要用机器语言写程序,必须非常清楚所用机器指令的格式,具体操作码的编码,操作数形式地址的编码表示,和每条指令的功能。下面我们以表格形式给出这些内容,如表3.2
所示。
操作码部分的符号X表示不用。
程序状态位的符号·* 0 1 分别表示对相应状态位保持不变、修改、清0和置1。
待定部分,是留给实验人员自己确定并予以实现的指令。
表3.5 指令汇总表
|
操作码
|
IR15~IR8
|
形式地址
IR7~IR4 IR3~IR0
|
微程序
入口地址
|
程序状态位CZVS
|
指令功能
用汇编语句表示
|
| |
|
|
|
|
|
|
00
|
000000xx |
不用
|
8CH
|
····
|
NOP |
|
04
|
000001xx |
DR SR
|
1CH
|
* * * *
|
ADD DR,SR |
|
08
|
000010xx |
DR SR
|
1EH
|
* * * *
|
ADC DR,SR |
|
0C
|
000011xx |
DR SR
|
20H
|
* * * *
|
SUB DR,SR |
|
10
|
000100xx |
DR SR
|
22H
|
* * * *
|
SBB DR,SR |
|
14
|
000101xx |
DR SR
|
52H
|
* * * *
|
CMP DR,SR |
|
18
|
000110xx |
DR 不用
|
54H
|
····
|
PUSH DR |
|
1C
|
000111xx |
DR 不用
|
56H
|
····
|
POP DR |
|
20
|
001000xx |
DR SR
|
24H
|
····
|
MOV DR,SR |
|
24
|
001001xx |
DR SR
|
26H
|
····
|
MOV DR,[SR] |
|
28
|
001010xx |
DR SR
|
28H
|
····
|
MOV [DR],SR |
|
2C
|
001011xx |
DR 不用
|
2CH
|
····
|
MOV DR,DATA |
|
30
|
001100xx |
DR 不用
|
2EH
|
····
|
MOV DR,[ADR] |
|
34
|
001101xx |
不用 SR
|
30H
|
····
|
MOV [ADR],SR |
|
38
|
001110xx |
DR SR
|
32H
|
····
|
MOV DR,OFFSET[SR] |
|
3C
|
001111xx |
DR SR
|
34H
|
····
|
MOV OFFSET[SR],DR |
|
40
|
010000xx |
不用 SR
|
38H
|
0 * 0 *
|
MUL SR |
|
44
|
010001xx |
不用
|
58H
|
····
|
PSHF |
|
48
|
010010xx |
不用 SR
|
40H
|
0 * 0 *
|
DIV SR |
|
4C
|
010011xx |
不用
|
5AH
|
* * * *
|
POPF |
|
50
|
010100xx |
DR SR
|
4AH
|
0 * 0 *
|
AND DR,SR |
|
54
|
010101xx |
DR SR
|
4CH
|
0 * 0 *
|
XOR DR,SR |
|
58
|
010110xx |
DR SR
|
4EH
|
0 * 0 *
|
OR DR,SR |
|
5C
|
010111xx |
DR SR
|
50H
|
0 * 0 *
|
TEST DR,SR |
|
60
|
011000xx |
DR 不用
|
5CH
|
*···
|
SHL DR |
|
64
|
011001xx |
DR 不用
|
5EH
|
*···
|
ASR DR |
|
68
|
011010xx |
DR 不用
|
60H
|
*···
|
SHR DR |
|
6C
|
011011xx |
DR 不用
|
62H
|
*···
|
RCL DR |
|
70
|
011100xx
|
DR 不用
|
64H
|
*···
|
RCR DR |
|
74
|
011101xx |
DR 不用
|
66H
|
* * * *
|
INC DR |
|
78
|
011110xx |
DR 不用
|
68H
|
* * * *
|
DEC DR |
|
7C
|
011111xx |
DR 不用
|
6AH
|
0 * 0 *
|
NOT DR |
|
80
|
100000xx |
不用
|
6CH
|
····
|
EI |
|
84
|
100001XX |
不用
|
6EH
|
····
|
DI |
|
88
|
10001CND |
不用 SR
|
70H
|
····
|
JP CND, SR |
|
8C
|
10001CND |
不用 SR
|
72H
|
····
|
JP CND, SR |
|
90
|
100100XX |
不用 SR
|
74H
|
····
|
JP SR |
|
94
|
100101XX |
不用 SR
|
76H
|
····
|
CALL SR |
|
98
|
10011CND |
OFFSET
|
78H
|
····
|
JR CND, ADR |
|
9C
|
10011CND |
OFFSET
|
78H
|
····
|
JR CND, ADR |
|
A0
|
101000XX |
OFFSET
|
74H
|
····
|
JR ADR |
|
A4
|
101001XX |
I/O PORT
|
7CH
|
····
|
IN PORT |
|
A8
|
101010XX |
I/O PORT
|
80H
|
····
|
OUT PORT |
|
AC
|
101011XX |
不用
|
84H
|
····
|
RET |
|
B0
|
101100XX |
不用
|
86H
|
* * * *
|
IRET |
|
B4
|
101101XX |
不用
|
88H
|
0 ···
|
CLC |
|
B8
|
101110XX |
不用
|
8AH
|
1 ···
|
STC |
|
BC
|
101111XX |
不用
|
8EH
|
····
|
HALT |
|
C0
|
11000CND |
不用
|
90H
|
····
|
JP CND, ADR |
|
C4
|
11000CND |
不用
|
90H
|
····
|
JP CND, ADR |
|
C8
|
110010XX |
不用
|
92H
|
····
|
JP ADR |
|
CC
|
110011XX |
不用
|
94H
|
····
|
CALL ADR |
|
D0
|
110100XX |
不用
|
98H
|
0 0 0 0
|
LDMC |
|
|
|
|
|
|
|
|
D4
|
110101 |
待定
|
100H
|
待定
|
未 定 义
|
|
D8
|
110110 |
110H
|
|
DC
|
110111 |
120H
|
|
E0
|
111000 |
130H
|
|
E4
|
111001 |
140H
|
|
E8
|
111010 |
150H
|
|
EC
|
111011 |
160H
|
|
F0
|
111100 |
170H
|
|
F4
|
111101 |
180H
|
|
F8
|
111110 |
190H
|
|
FC
|
111111 |
1A0H
|
|
|