2013-02-15 2 views
2

부동 소수점 레지스터와 관련이있는 기계 명령어에 대한 MIPS 바이너리 코드를 작성하려고합니다. 그러나 부동 소수점 명령어에 대한 opcode를 찾을 수는 있지만 부동 소수점 레지스터를 참조하는 숫자는 알 수 없습니다. 내 책과 인터넷에서 $ t1을 참조하고 싶다면 사용할 번호 레지스터를 알 수 있지만 $ f1을 어떻게 참조하는지 알 수는 없습니다.MIPS의 부동 소수점 레지스터는 무엇입니까?

답변

3

부동 소수점 레지스터가 32 개 있습니다 ($f0 .. $f31). 그러나 모든 부동 소수점 연산은 별도의 처리 단위 인 FPU (부동 소수점 유닛)에서 (초기 MIPS 프로세서에서) 수행되므로 일반 (정수) 명령으로 부동 소수점 레지스터에 액세스 할 수 없습니다. FPU 명령에 대한 FPU 레지스터와 CPU 명령에 대한 CPU 레지스터

는 사진과 투명한 설명이 http://www.cim.mcgill.ca/~langer/273/12-coprocessors.pdf

모든 FPU 명령은 코 프로세서 1 (CP1) 첫 확인 및 http://www.cs.sunysb.edu/~lw/spim/MIPSinstHex.pdf

필드 피트 (5) FS의 마지막 페이지에 대한, 보조 프로세서 명령어로 인코딩됩니다 (5) fd (5)는 레지스터 코드 (모두 5 비트 폭)입니다. $ f0은 0으로 코딩됩니다. $ f31은 31 (dec) 또는 0x1f (hex)입니다. 이중 레지스터 값 (64 비트 이중 형식)의 경우 레지스터 쌍의 첫 번째 레지스터 번호 만 기록됩니다 (regnumber도 허용됨 : 0,2 ..30). 옵 코드의

자세한 테이블 위치 : http://www.math.unipd.it/~sperduti/ARCHITETTURE-1/mips32.pdf (페이지 A-73)

+0

감사합니다! 나는이 대답을 받아 들였는가? 나는 그것을하는 법을 모르지만 ......... –

+0

예, 초록색 "v"모양의 기호는 대답이 받아 들여진다는 것을 의미합니다. – osgx

관련 문제