Chap 02. MIPS
2. Instructions: Language of the Computer
01. Instruction Set
Instruction Set이 하드웨어나 소프트웨어별로 다를 수는 있지만, 원리가 비숫하기 때문에 하나의 언어를 배우면 다른 언어도 배우기 쉽다.
02. MIPS Arithmetic Instructions
Instruction : [INS] [저장변수] [변수1] [변수2]
[저장변수] = [변수1] +/- [변수2]
- 연산 명령어로 add와 sub가 있다.
- 모든 연산은 한줄에 하나씩만 할 수 있다.
- 연산에는 꼭 3개의 변수가 있어야한다.
03. Operands of MIPS Instructions: Registers
일반 언어와 다르게 어셈블리어에서는 직접 CPU에 존재하는 Register에 접근하기 때문에 변수의 개수나 이름을 마음대로 정할 수 없다.
- 레지스터는 총 32개가 있다.
- 하나의 레지스터는 32bits(=4byte)로 되어있으며 이를 하나의 word라고 부른다.
- 레지스터의 수는 제한되어 있으므로 데이터들은 SRAM이나 DRAM에 저장되어 있다가 필요한 경우에만 불러와야 한다.
- 메모리는 엄청 큰 1차원 배열의 형태로 되어있다.
- 하나의 메모리는 모두 word(32bits)로 되어있다.
04. MIPS Data Transfer Instructions: Load
Instruction : lw(load word) [사용할 레지스터] (index)[메모리의 0번째 자료의 주소가 담긴 레지스터]
[사용할 레지스터] = [메모리의 0번째 주소 + index]
- Load는 연산을 실행하기 전 메모리에서 레지스터로 정보를 옮기는 작업이다.
- Index는 모두 byte단위로 나타내야 한다.
g = h + A[8];
lw $t0 32($s3) # 8*4(byte) = 32
add $s1 $s2 $t0
05. MIPS Data Transfer Instructions: Store
Instruction : sw(store word) [연산이 완료된 레지스터] (index)[저장할 메모리의 0번째 자료의 주소가 담긴 레지스터]
[메모리의 0번째 주소 + index] = [연산이 완료된 레지스터]
- Store은 연산을 실행한 후 레지스터에서 메모리로 정보를 옮기는 작업이다.
- Index는 모두 byte단위로 나타내야 한다.
A[12] = h + A[8];
lw $t0 32($s3) # 8*4(byte) = 32
add $s1 $s2 $t0
sw $t0 48($s3). # 12*4(byte) = 48
06. Operands of MIPS Instructions: Constant
Instruction : addi(add immediate) [레지스터] [레지스터] [상수]
[레지스터] = [레지스터] + [상수]
- addi는 상수를 더해주는 연산이다.
Author And Source
이 문제에 관하여(Chap 02. MIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jihoon0226/컴퓨터-구조-02.-MIPS
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Instruction Set이 하드웨어나 소프트웨어별로 다를 수는 있지만, 원리가 비숫하기 때문에 하나의 언어를 배우면 다른 언어도 배우기 쉽다.
Instruction : [INS] [저장변수] [변수1] [변수2]
[저장변수] = [변수1] +/- [변수2]
일반 언어와 다르게 어셈블리어에서는 직접 CPU에 존재하는 Register에 접근하기 때문에 변수의 개수나 이름을 마음대로 정할 수 없다.
Instruction : lw(load word) [사용할 레지스터] (index)[메모리의 0번째 자료의 주소가 담긴 레지스터]
[사용할 레지스터] = [메모리의 0번째 주소 + index]
g = h + A[8];
lw $t0 32($s3) # 8*4(byte) = 32
add $s1 $s2 $t0
Instruction : sw(store word) [연산이 완료된 레지스터] (index)[저장할 메모리의 0번째 자료의 주소가 담긴 레지스터]
[메모리의 0번째 주소 + index] = [연산이 완료된 레지스터]
A[12] = h + A[8];
lw $t0 32($s3) # 8*4(byte) = 32
add $s1 $s2 $t0
sw $t0 48($s3). # 12*4(byte) = 48
Instruction : addi(add immediate) [레지스터] [레지스터] [상수]
[레지스터] = [레지스터] + [상수]
Author And Source
이 문제에 관하여(Chap 02. MIPS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jihoon0226/컴퓨터-구조-02.-MIPS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)