2012-01-27 6 views
7

Czytam książkę "Computer Organization and Design" Pattersona i Hennessy'ego i zainteresowałam się MIPS.Zakres instrukcji skoku MIPS

Mam wątpliwości dotyczące znalezienia zakresu instrukcji skoku/rozgałęzienia. Także przy określaniu liczby instrukcji rozgałęzień/skoku wymaganych do uzyskania określonego adresu.

Czy ktoś może wyjaśnić, w jaki sposób należy to obliczyć, np. Biorąc pod uwagę komputer pod konkretnym adresem i znajdując numer instrukcji oddziału/skoku, aby przejść do innego adresu? Na przykład, jeśli komputer ma wartość 0x10001010, jaki jest zakres adresów instrukcji oddziału i skoku?

Czy możesz skierować mnie do jakiegoś zasobu internetowego lub książki, które pomogłyby mi lepiej je zrozumieć?

+0

Sprawdź instrukcje obsługi MIPS. Wyjaśniają sposób kodowania instrukcji. – m0skit0

Odpowiedz

9

Poniższe informacje dotyczą MIPS-32. Instrukcje:

Oddział B, BEQ, BNE, etc. mają 16-bitowe podpisane pole słowo, pozwalające oddziałowi na adres +/- 128 kBytów z bieżącej lokalizacji. Instrukcja skoku J określa adres w bieżącym regionie 256 MB określonym przez najbardziej znaczące 4 bity: 26 < < 2 bity (jest to , a nie względny adres). Aby rozgałęzić się do dowolnego adresu w dowolnym miejscu w przestrzeni adresowej 4 GB, użyj JR (skoku rejestru), który przeskakuje do adresu zawartego w rejestrze ogólnego przeznaczenia.

Wykonuje jedną instrukcję rozgałęzienia lub skoku lub obciążenie rejestru, a następnie JR, aby przejść do dowolnego adresu, w zależności od odległości.

Najlepsza książka do programowania MIPS to nadal See MIPS Run. Można również znaleźć podręczniki dotyczące architektury MIPS pod numerem mips.com (wymagana rejestracja). Najważniejszym dokumentem jest Architektura MIPS32® dla programistów Volume II: Zestaw instrukcji MIPS32®.