mips指令集设计
- 格式:doc
- 大小:82.00 KB
- 文档页数:4
mips指令集设计
要求:指令集功能尽可能完备,指令条数尽可能少。
成员:
思路:仿照mips指令集的编码方法,每条指令采用32位编码方式。由于要使指令条数尽可能少,还要具有可扩充性,保留一定的操作码空间,故使用5位给操作码编码。使用64个64位通用寄存器,故使用6位进行地址码编码。所以三种不同的指令格式为:
R型指令:
0 4 5 10 11 16 17 22 23 31 OPCODE RS1 RS2 RD FUNC
I型指令:
0 4 5 10 11 16 17 31 OPCODE RS1 RS2 IMM/UIMM
J型指令:
0 4 5 31 OPCODE OFFSET
R型指令的操作码均为00000,包含指令有:加法指令、减法指令、无符号加法指令、无符号减法指令、逻辑指令(与、或、或非、抑或)、移动指令。
I型指令的操作码为00001—01000,包含指令有:立即数加指令、无符号立即数加指令、逻辑左移指令、逻辑右移指令、Store指令、Load指令、等于零时分支指令、不相等时分支指令。
J型指令的操作码为01001—01100,包含指令有:逻辑指令
(非)、跳转指令、跳转并链接指令、寄存器跳转指令。
具体指令设计如下:
R型指令:
加法指令:
0 4 5 10 11 16 17 22 23 31 00000 000000 000001 000010 000000000
减法指令:
0 4 5 10 11 16 17 22 23 31 00000 000011 000100 000101 000000001
无符号加法指令:
0 4 5 10 11 16 17 22 23 31 00000 000110 000111 001000 000000010
无符号减法指令:
0 4 5 10 11 16 17 22 23 31 00000 001001 001010 001011 000000011
与:
0 4 5 10 11 16 17 22 23 31 00000 001100 001101 001110 000000100
或:
0 4 5 10 11 16 17 22 23 31 00000 001111 010000 010001 000000101
或非:
0 4 5 10 11 16 17 22 23 31 OPCODE 010010 010011 010100 000000110
抑或:
0 4 5 10 11 16 17 22 23 31 OPCODE 010101 010110 010111 000000111
移动指令:
0 4 5 10 11 16 17 22 23 31
OPCODE 011000 011001 011010 000001000
I型指令:
立即数加指令:
0 4 5 10 11 16 17 31 00001 011011 011100 immediate
无符号立即数加指令:
0 4 5 10 11 16 17 31 00010 011101 011110 immediate(unsign)
逻辑左移指令:
0 4 5 10 11 16 17 31 00011 011111 100000 immediate
逻辑右移指令:
0 4 5 10 11 16 17 31 00100 100001 100010 immediate
Store指令:
0 4 5 10 11 16 17 31 00101 100011 100100 immediate
Load指令:
0 4 5 10 11 16 17 31 00110 100101 100110 immediate
等于零时分支指令:
0 4 5 10 11 16 17 31 00111 100111 101000 immediate
不相等时分支指令:
0 4 5 10 11 16 17 31 01000 101001 101010 immediate
J型指令:
非:
0 4 5 31 01001 OFFSET
跳转指令:
0 4 5 31 01010 OFFSET
跳转并链接指令:
0 4 5 31 01011 OFFSET
寄存器跳转指令:
0 4 5 31 01100 OFFSET