[컴퓨터 구조][MIPS] I-타입(Immediate-type) 명령어
2020. 6. 12. 16:20ㆍ컴퓨터 구조
I-타입(Immediate-type) 명령어
op | rs | rt | 상수(constant or address) | |
6 bit | 5 bit | 5 bit | 16 bit |
op(opcode)
명령어의 종류를 알 수 있게 해준다.
rs(register source)
연산을 위해 사용되는 첫 번째 레지스터
rt(register target)
연산의 결과값이 저장되는 레지스터
R-type과는 다르게 I-type은 rt에 저장이 된다.
상수(constant or address)
constant
-2^15 ~ 2^15 - 1 까지의 수
address
rs에 추가될 offset
c언어에서의 배열 번호를 말한다.
c code
a[5]
MIPS
$s0 + 20
하나의 값이 4byte이므로
4n을 더해준다.
상수 연산
addi $s0, $s1, 4
단, 빼기는 존재하지 않는다.
(덧셈으로 바꿔서 계산)
ex)
a = a - 4
↓
a = a + (-4)
load
메모리 에서 레지스터로
데이터를 복사
ex)
lw $t0, 32($s3)
$to : 값을 저장할 레지스터
$s3 : Base register(값을 가져올 메모리의 주소값)
32 : offset
$to = 메모리의 ($s3 + 32) 위치에 있는 값
store
레지스터 에서 메모리로
데이터를 복사
ex)
sw $t0, 32($s3)
$to : 값을 저장할 레지스터
$s3 :Base register(값을 가져올메모리의 주소값)
32 :offset
메모리의 ($s3 + 32) 위치에 있는 값 = $t0
분기(branch) 명령어
조건이 참인 경우 주어진 위치로 분기
c언어에서 if문을 생각하면 편하다.
beq(branch on equal)
bne(branch on not equal)
ex)
beq rs, rt, L1
L1 : 숫자
(address값을 적는 것이 아니다 주의하자.)
만약 rs = rt 이면, L1개 만큼의 명령어를 건너뛰어라.
↓
if(rs = rt) than, PC = 4 + (4 * L1)
flag 명령어
주어진 값보다 작다면, 결과값을 1로
크다면, 결과값을 0으로 바꿔준다.
slti(set less than)
ex)
slti rt, rs, constant
만약 rs < constant 이면, rt를 1로, 아니라면 rt를 0으로.
↓
if(rs < constant) than, rt = 1 else rt = 0
'컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] 컴퓨터의 연산 (0) | 2020.06.12 |
---|---|
[컴퓨터 구조][MIPS] J-타입(Jump-type) 명령어 (0) | 2020.06.12 |
[컴퓨터 구조][MIPS] R-타입(Register-type) 명령어 (0) | 2020.06.12 |
[컴퓨터 구조] MIPS(Microprocessor without Interlocked Pipelined Stages) (0) | 2020.06.10 |
[컴퓨터 구조] ISA(Instruction Set Architecture) (0) | 2020.06.10 |