본문 바로가기
ੈ✩‧₊˚Computer Science/컴퓨터구조

[컴퓨터구조]MIPS Instruction Format

by 샨샨 2020. 10. 21.
반응형

Assembly code 는 기계어 형식으로 바꾸어 써야하며 MIPS 에서 기계어 형식은 3가지 type 이 존재한다. 

 

1.R-type  :  가장 기본적인 Instruction format

- Arithmetic instruction format

opcode : operation (6bit)

rs : first source operand (5bit)

rt : second source operand (5bit)

rd : destination operand (5bit)

shamt : shift amount (5bit)

funct : function code (6bit)

 

예시) ADD $t0, $s0, $s1 ($t0 <- $s0 + $s1)

opcode : 0 (ADD) rs : 16($s0) rt : 17($s1) rd : 8($t0) shamt : 0 funct : 32

Decimal

0 16 17 8 0 32

Binary

000000 10001 10010 01000 00000 100000

Hexadecimal

0000 0010 0011 0010 0100 0000 0010 0000
0 2 3 2 4 0 2 0

+참고

$t0-$t7 ( 8 to 15 )

$s0-$s7 ( 16 to 23 )

 

2.I-type : 상수를 이용하기 위해 더 긴 길이의 field가 필요해서 만들어진 instruction format

-Transfer, branch, immediate format

-5 bit에 상수를 넣기에는 너무 작다.

-그러므로, 16bit를 상수를 할당하는 데 이용한다. (rd 없어짐 -> rt가 destination 역할)

-사용하는 opcode

  • A/L : ADDI , ORI
  • Branch : BEQ, BNE
  • Data transfter : LW, SW

예시) LW $s0, 32($s1)

 

Decimal

 

op=35 rs=17 ($s1) rt=16 ($s0) constant = 32

Binary

100011 01001 01000 0000 0000 0010 0000

 

3.J-type : jump 명령어로 다른 address 를 접근할 때 이용한다. 메모리에 접근하기에 16 bit는 턱없이 부족해 고안되었다.

-Jump instruction format

-c언어의 goto문과 같음

-J, JR, JAL

opcode : operation (6bit)

jump address(word address) : 26bit

예시) J 400

jum address 는 word 단위이므로 instruction format을 작성할 때에는 400/4 = 100으로 작성해야한다 (4bytes = 1 word)

2 100 (400/4)
반응형