add a, b, c
위 코드는 MIPS 산술 연산을 수행하는 어셈블리 코드이다. 이 코드는두 변수 b
, c
를 더한 값을 a
에 저장하겠다는 의미이다.add
와 같은 MIPS Arithmetic Operation은 세 변수를 피연산자로 가진다. 즉, C언어의 a = b + c + d + e;
를 구현하고 싶다면 아래와 같이 Instruction을 사용해야 한다.
add a, b, c # a = b + c
add a, a, d # a = a + d
add a, a, e # a = a + e
여기서 #
은 어셈블리에서 주석의 시작을 나타내는 기호이며, 그 줄의 #
뒤부터는 주석으로 처리한다.
더 많은 피연산자를 구현하는 것은 물론 가능하지만, 하드웨어가 복잡해지기 때문에 MIPS에서는 3개로 고정되어 있다.
하드웨어가 복잡하면 비용이 많이 들고 구현이 어려워진다.f = (g + h) – (i + j);
라는 C 코드를 MIPS 어셈블리로 바꾸면 다음과 같다.
add t0, g, h # temp t0 = g + h
add t1, i, j # temp t1 = i + j
sub f, t0, t1 # f = t0 - t1
여기서 사용된 t0
, t1
은 레지스터인데 레지스터 피연산자는 다음 포스팅에서 다룰 예정이다.
[컴퓨터 구조] 4.1 Introduction (0) | 2020.10.25 |
---|---|
[컴퓨터 구조] 2.3 Operands of the Computer Hardware (0) | 2020.10.25 |
[컴퓨터 구조] 2.1 Introduction (0) | 2020.10.25 |
[컴퓨터 구조] 1.10 Fallacies and Pitfalls (0) | 2020.10.25 |
[컴퓨터 구조] 1.6 Performance (0) | 2020.10.25 |
댓글 영역