[컴퓨터 구조][MIPS] R-타입(Register-type) 명령어
2020. 6. 12. 13:57ㆍ컴퓨터 구조
R-타입(Register-type) 명령어
op | rs | rt | rd | shamt | funct |
6 bit | 5 bit | 5 bit | 5 bit | 5 bit | 6 bit |
op(opcode)
명령어의 종류를 알 수 있게 해준다.
rs(register source)
연산을 위해 사용되는 첫 번째 레지스터
rt(register target)
연산을 위해 사용되는 두 번째 레지스터
rd(register direction)
연산의 결과값이 저장되는 레지스터
shamt(shift amout)
시프트 연산에 사용되는 비트
시프트 연산이 사용되지 않는다면, 0으로 고정된다.
funct(function code)
opcode로 명령어의 종류를 다 담기에는 부족해서 만든 추가적인 코드
opcode가 큰 분류를 지정한다면, funct에서는 작은 분류를 지정한다.
opcode
사칙연산, 논리연산 .......
funct
덧셈, 뺄셈, 곱셈, 나눗셈, and, or........
ex)
add $t0, $s1, $s2
special | $s1 | $s2 | $t0 | 0 | add |
0 | 17 | 18 | 8 | 0 | 32 |
000000 | 10001 | 10010 | 01000 | 00000 | 100000 |
=
이진수를 16진수로 변환하는 법
4bit씩 끊어서 생각하면 편하다.
1110 | 1100 | 1010 | 1000 | 0110 | 0100 | 0010 | 0000 |
e | c | a | 8 | 6 | 4 | 2 | 0 |
shift 연산
sll $s0, $s1, 9
special | 사용 되지 않음 | $s1 | $s0 | 9 | shift |
0 | 0 | 17 | 16 | 9 | 0 |
000000 | 00000 | 10001 | 10000 | 01001 | 000000 |
flag 명령어
주어진 값보다 작다면, 결과값을 1로
크다면, 결과값을 0으로 바꿔준다.
slt(set less than)
ex)
slt rd, rs, rt
만약 rs < rt 이면, rd를 1로, 아니라면 rd를 0으로.
↓
if(rs < rt) than, rd = 1 else rd = 0
'컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조][MIPS] J-타입(Jump-type) 명령어 (0) | 2020.06.12 |
---|---|
[컴퓨터 구조][MIPS] I-타입(Immediate-type) 명령어 (0) | 2020.06.12 |
[컴퓨터 구조] MIPS(Microprocessor without Interlocked Pipelined Stages) (0) | 2020.06.10 |
[컴퓨터 구조] ISA(Instruction Set Architecture) (0) | 2020.06.10 |
[컴퓨터 구조] 컴퓨터 구조 (0) | 2020.06.10 |