[컴퓨터구조]Ch2: 5. Representing Instructions
컴퓨터구조
Author
gleaming
Date
2021-10-24 06:44
Views
278
CHAPTER 2.
INSTRUCTIONS : LANGUAGE OF THE COMPUTER
5. Representing Instructions
◆ Representing Instuctions
- 명령어는 binary로 인코딩 된다. (기계어)
- in MIPS
명령어는 32 bits의 한 word로 인코딩 - 연산 코드(opcode), 레지스터를 표현하기 위해 적은 숫자 사용
- $t0 ~ $t7 : reg's 8~15
$t8 ~ $t9 : reg's 24~25
$s0 ~ s7 : reg's 16~23 - MIPS에서 제공하는 명령어 형식 포맷 : r형식, i형식, j형식
◆ MIPS Instructions
1) R-format
- MIPS Fields
- op : opcode
- rs : first register source operand
- rt : second register source operand
- rd : register destination operand (연산 후의 결과 저장)
- shamt : shift amount
- funct(function)
- +) op는 항상 0이고, funct에서 rs와 rt 연산 수행
2) I-format
- MIPS Fields
- op / rs / rt
- Immediate Data(16) : 상수나 주소
3) J-format
- MIPS Fields
- op
- Address(26)
4) example (R-format)
- add $t0, $s1, $t
컴퓨터에는 맨 아래 16진수만 표현되어있다.
◆ MIPS I-format Instructions
1) 산술연산, 명령어 load/store 할 때 사용
- -2^15 ~ +2^15 -1 사용가능
- 기본 주소(rs)로부터 시작해서 address만큼 떨어진 주소의 값을 rt에 저장
2) Design Principle 4 : 좋은 디자인은 좋은 절충을 요구한다.
- 다른 형식은 디코딩을 복잡하게 하지만, 이 경우엔 32-bit 명령어를 균일하게 허용한다.
- 형식을 최대한 유사하게 유지한다.
3) example
- A[300] = h + A[300];
($t1 = A의 시작, rs / $s2 = h / address=300) - lw $t0, 1200($t1) #$t0 = A[300]
add $t0, $s2, $t0 #$t0 = h+$t0
sw $t0, 1200($t1) #store $t0(h+A[300]) back into A[300] - 표로 나타내기