나는 대답을 꽤 오랫동안 찾고 있었고 마침내 나는 누군가가 나를 도울 수 있는지 물어보기로 결정했다.)MIPS 분기. 뒤로 어떻게 뛰어 오르는가?
MIPS의 조건부 점프 명령의 형식으로 beq 명령에 다음을 포함한다. 점프의 "크기"를 나타내는 16 비트 필드 원하는 방향을 얻으려면 현재 PC에 추가해야한다는 것을 알고 있습니다. 의심의 여지가, 내가 어떻게 뒤로 점프를위한 필드를 설정합니까? 2의 보완 것 같아요? 나는이 예를 발견했다. 그러나 그것이 나보다 더 혼란 스러웠다. 누군가가 간단히 설명 할 수 있다면 나는 매우 감사 할 것이다! 그건 그렇고, 미안 문법/표현에 대해, 나는 아직 영어에 능숙하지 않습니다. 언급
예 : 단지 음의 오프셋을 사용
PC+Jump(Forward)
0100 1101 0000 0011 1010 1100 0101 1000
0000 0000 0000 0000 0000 0000 1001 1100
.......................................................................
0100 1101 0000 0011 1010 1100 1111 0100
PC+Jump(Backwards)
0100 1101 0000 0011 1010 1100 0101 1000
1111 1111 1111 1111 1100 0000 1001 1100
.......................................................................
0100 1101 0000 0011 0110 1100 1111 0100
답변 해 주셔서 대단히 감사합니다. 그 과정을 이해하는 데 정말로 도움이되었습니다. 내가 제대로했는지 확인하기 위해, beq 명령으로 도달 할 수있는 하위 PC로 뒤로 건너 뛰고 싶다면 현재 PC에 "30 개"를 추가하기 만하면됩니까? 다시, 기술 언어에 대한 지식이 부족합니다.-_- – MIPSn00b
'BEQ' 명령은 즉각적인 16 비트 오프셋을 허용합니다. 가장 큰 음수 16 비트 숫자는 0x8000 또는 1에 이어 15 제로입니다. 모든 비트는 4의 배수이기 때문에 2 비트만큼 왼쪽으로 시프트되고 0xfffe0000의 오프셋을 제공하기 위해 부호 확장됩니다. 만약 그 이상으로 멀리 이동해야한다면, 대신에'J'를 쓰고, 더 먼 곳으로 가야한다면, 목표 주소를 레지스터에 넣고'JR'을 사용하십시오. –
답변을 해주신 Rob에게 다시 한 번 감사드립니다. 매우 유용했습니다! – MIPSn00b