MIPS

엥그니어링/도움글 2011. 4. 7. 00:17
 


- MIPS instruction formats

명령어들은 R, I, J의 세 종류로 나뉜다. 모든 명령어는 6비트의 opcode로 시작한다. opcode뒤에 R타입 명령어는 3개의 레지스터, shift amount, function 필드를 명시한다. I타입 명령어는 2개의 레지스터, 16비트의 직접적인 값을 명시한다. J타입 명령어는 26비트의 jump target이 온다.

Type-31-                                 format (bits)                                 -0-
R opcode (6) rs (5) rt (5) rd (5) shamt (5) funct (6)
I opcode (6) rs (5) rt (5) immediate (16)
J opcode (6) address (26)


- MIPS assembly language

어셈블리화 되기 전에 여러 개의 실제 명령어로 translate 되어야 하는 pseudoinstruction에 비해 하드웨어에서 직접 실행되는 assembly language instrunction이 있다.

다음에서 레지스터 문자 d, t, s는 (레지스터) 숫자나 레지스터 이름을 대신하는 기호이다.
C는 직접적인 상수를 의미한다.
다음의 모든 명령어는 원래의 명령어이다. 
opcode와 function code는 16진수이다.

(2014/04/25: 위에 내용은 뭐지 뭔가 번역하다가 때려치고 만 건가. 아 위키피디아 내용이네.)


- 레지스터

레지스터 번호 기억하기 쉬운 이름 일반적 용도
$0 zero 항상 0
$1 $at 어셈블러 템포러리(지정되어 있음)
$2, $3 $v0, $v1 서브루틴에서 리턴되는 값
$4-$7 $a0-$a3 서브루틴에 입력되는 값
$8-$15 $t0-$t7 임시 - 함수호출중에 변할 수 있다
$16-$23 $s0-$s7 저장되는 레지스터 - 함수호출중에도 불변
$24,$25 $t8,$t9 임시
$26,$27 $k0,$k1 커널(OS가 사용함)
$28 $gp 전역포인터
$29 $sp 스택포인터
$30 $fp 프레임포인터
$31 $ra 리턴주소(몇몇 명령에서 자동으로 사용됨)


'엥그니어링 > 도움글' 카테고리의 다른 글

Favicon / 즐겨찾기 아이콘 등록  (3) 2014.06.01
JavaScriptCore  (0) 2014.04.24
Sublime Text 2  (0) 2014.03.06
LaTeX  (2) 2014.01.06
맥시마(wxMaxima)에서 페이져 계산하기  (0) 2012.06.09

WRITTEN BY
Chaz
서울소재 모 대학교 공대 졸업하고 일개미가 된 일명 비둘기가 거주하는 곳입니다

,