MIPS 32는 32 비트 명령어를 사용합니다. 그러나 거의 모든 명령이 완료되면 CPU는 +4를 PC에 추가합니다. 내가 아는 한, 4 단어는 64 비트를 의미하므로 어떻게 가능합니까? 내가 무언가를 잊어 버렸거나 mips32가 모든 명령에 2 개의 빈 단어를 낭비하고 있습니까?32 비트 밉스 명령이 64 비트 공간에 저장되는 이유는 무엇입니까?
답변
MIPS는 폰 노이만 아키텍처 프로세스이며, 그 안에있는 명령어와 데이터는 모두 워드 경계가 아닌 바이트로 처리됩니다. 따라서 PC 값은 명령어의 크기 인 4 바이트만큼 앞당겨집니다.
BTW, MIPS64 명령어는 여전히 32 비트 크기입니다.
답변 해 주셔서 감사합니다! 그리고 주소는 얼마나 걸립니까? 내 말은, 첫 번째 명령이 # 0000에 오면 다음 명령은 # 0004에 들어갈 것입니까? 그래서, 각 주소는 1 바이트를 나타 냅니까? –
주소 자체는 32 비트 또는 64 비트입니다. 주소 지정 단위는 1 바이트입니다. 그래서, 각 가능한 주소 값은 메모리의 특정 바이트를 가리 킵니다 (메모리는 물리적으로 존재하지 않지만 또 다른 문제입니다). –
안녕하세요 Seva, 답변 해 주셔서 대단히 감사합니다. 다른 하나 대답 해 줄래? 32 비트 주소를 사용하면 모든 데이터가 어떻게 액세스됩니까? 지금까지 내가 아는 한, lw에 대한 mips32 구조체는 주소가 16 비트 만로드 할 수있게 해 주므로 0x000에서 0xFFFF까지로드 할 수있다. 0xFFFFFFFF 주소를 어떻게로드 할 수 있습니까? –
4 단어의 MIPS는 4x32 = 128 비트입니다. –