三 数据格式和寻址方式的设计
3.1 数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
7 6543210 符号 尾 数 其中第 7 位为符号位,相对于十进制数值表示范围是:-2 7?X?2 7-1。
3.2 模型机的寻址方式
操作数的寻址就是寻找形成操作数在主存中的地址的方法。 设指令格式如下:
操作码(OP) 寻址特征 形式地址
形式地址(D):指令地址字段中给出的地址。
有效地址(EA):形式地址经过一定计算而得到的操作数的实际地址。 常用寻址方式如下:
(1)隐含寻址:指令中不指出操作数的地址,而是隐含在累加器或堆栈等,由它们给出操作数。
(2)立即寻址:指令的地址字段指出的不是操作数的地址,而是操作数本身。即数据 data = D。
(3) 直接寻址:操作数的地址直接在指令中给出,即操作数的有效地址为 EA = D。
(4)间接寻址:指令的形成地址 D 在主存相应单元中的内容是操作数的地址,即操作数的有效地址为
EA =(D)。
(5)寄存器寻址:指令中给出的是寄存器号 R,操作数就是寄存器中的内容,即 data=(R)。
(6) 寄存器间接寻址:指令中给出的是寄存器号 R,而操作数的地址就是寄存器中的内容,
4
即 EA =(R)。
(7)相对寻址:操作数地址为程序计数器 PC 中的内容与指令中给出的地址偏移量 D 之 和,位移量 D 通常以补码形式给出,可正可负。
即 EA=(PC)+D。
(8) 基址寻址:操作数地址为基址寄存器中的内容与指令中给出的地址偏移量 D 之和,即 EA=(R)基址 +D
(9)变址寻址:操作数地址为变址寄存器中的内容与指令中给出的地址偏移量 D 之和,
3.3 指令格式
由于本模型机机器字长只有8位二进制长度,故使用单字长指令和双字长指令。根据要求,设计该模型机能执行的不同指令,例指令格式及功能如下:
(1) 算术逻辑运算指令
9 条算术逻辑指令的名称、功能和具体格式见表 3.1-1
表 3.1-1
5
算术逻辑运算指令用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7654 OP-CODE
32 10 rs rd 6
其中,OP-CODE 为操作码,rs 为源寄存器,rd 为目的寄存器,并规定:
Rs 或 rd 选定的寄存器
00 R0
01 R1
10 R2
(2) 访问指令及转移指令
模型机设计 2 条访内指令,即存数(STA)、取数(LDA),2 条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
7 6 5 4 3 2 1 0 00 M OP-CODE RD D
其中,OP-CODE 为操作码,rd 为目的寄存器地址(LDA、STA 指令使用)。D 为位移量 (正负均可),M 为寻址模式,其定义如下:
寻址模式 M 有效地址 E 说 明
直接寻址 00 E= D
E=(D) 间接寻址 01
E=(RI)+D RI 变址寻址 10
E=(PC)+D 相对寻址 11
(3) I/O 指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
其中,addr=01 时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10
时,选中“OUTPUT DEVICE”中的数码块作为输出设备。
(4) 停机指令 指令格式如下:
HALT 指令,用于实现停机操作。
7
四 指令和和微程序的设计
4.1 指令系统
本模型机共有16 条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1 条。表X列出了各条指令的格式、汇编符号、指令功能。
按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表, 表X 即为将图X微程序流程图按微指令格式转化而成的“二进制微代码表”。并将二进制代码表转换为联机操作时的十六进制格式文件,见下表X。
表 X 24 S3 23 S2 22 S1 21 S0 20 M 19 Cn 18 WE 17 A9 16 A8 1514 13 A 12 11 10 B 9 8 7 C 6 μA5 5 μA5 4 μA5 3 μA5 2 1 μA5 μA5
8