컴퓨터는 2진수를 사용해서 연산을 한다는 것은 익히 알려진 사실이다. 컴퓨터 내부에서는 높고 낮은 전기 신호를 연속된 형태의 숫자로 변환하여 저장되고 사용된다. 이것을 이진 비트(이진 자릿수,Binary bit) 라고 하며 비트(bit) 단위가 계산의 기본 단위가 된다. 이 단위는 높음/낮음, on/off, 참/거짓, 1/0 의 두 값 가운데 한 값을 가지게 된다. 이 이진 비트를 기준으로 컴퓨터에게 명령할 작업(명령어)을 숫자의 나열로 나타낸 것이 명령어 포맷 이라고 할 수 있다. 거의 모든 명령어는 레지스터를 사용하므로 레지스터 이름을 번호로 바꾸는 규칙이 있다. MIPS 에서는 총 32개의 레지스터를 사용한다. 레지스터는 고속의 데이터 저장소로 MIPS 에서 산술연산을 하기 위해서는 데이터가 레지스터에 있어야 한다. MIPS에서는 레지스터를 다음과 같이 피연산자(변수) 형식으로 제공한다. 설명 뒤의 괄호의 값은 레지스터 번호이다. $zero : 상수 0을 가진 레지스터. (0) $at : 큰 상수를 처리하기 위해 사용되도록 예약된 특수 레지스터 (1) $v0,$v1 : 결과 및 수식 계산 값 (2~3) $a0,$a1,$a2,$a3 : Argument, 함수에 사용되는 인자값을 담는 레지스터 (4~7) $t0,$s1,.....,$t7 : Temporary, 임시저장 레지스터 (8~15) $s0,$s1,....,$s7 : Save, 저장 레지스터 (16~23) $t8,$t9 : Temporary, 임시저장 레지스터 (24~25) $k0,$k1 : 운영체제 전용 레지스터 (26~27) $gp : 전역(global) 포인터 (28) $sp : 스택(stack) 포인터 (29) $fp : 프레임(frame) 포인터 (30) $ra : 복귀 주소(return adress) (31) MIPS는 모든 명령을 word 단위(32bit, 4byte) 로 처리한다. 명령어도 예외가 아니어서 모든 명령어는 32bit 단위로 처리되는데 기본적으로 다음과 같다. 가장 기본적...