MIPS 명령어를 16 진수 기계 코드로 변환해야하는 과제가 있습니다. add, addi, lw 등의 명령어를 변환하는 법은 잘 알고 있지만, beq와 같은 명령어가 나오면 혼란 스럽습니다. 이 beq를 16 진수로 변환하려면 어떻게해야합니까?MIPS : BEQ을 16 진수로 변환 기계 코드
0x00400108 beq $t3, $t5, NEXT
0x0040010C j END
다음의 주소
0x0040011C
어디?
나는 시도했다 :
BEQ 연산 코드 = 4
$의 T3는 = = 11
$의 T5를 등록 등록
NEXT = 0x0040011C 13 - 0x0040010C = 10 (16 진수) = 16 (십진수)
4 11 13 16 (decimal)
000100 01011 01101 0000 0000 0000 1000 (convert to binary)
0001 0001 0110 1101 0000 0000 0000 1000 (group into fours)
1 1 6 D 0 0 0 8 (hexadecimal)
하지만 그건 잘못된 것입니다 ...
명령어에 저장된 오프셋은 분기 명령어 다음 명령어의 _ 워드 (32 비트 엔티티) 수입니다. MIPS 명령어 세트 참조를 참조하십시오. – Michael
나는 노력했지만, 나는 그것을 정말로 이해하지 못한다. 32 비트이기 때문에 Bne과 NEXT 사이의 명령어 수를 세고 4로 곱하면된다는 의미입니까? :( – Aitalas