Co dokładnie robi ta instrukcja? Wiem, że próbuje dopasować dane do wielokrotności określonego numeru, ale dlaczego miałbyś to zrobić? Czy istnieje odpowiednik instrukcji w innych asemblerach?Instrukcja "wyrównaj" na MIPS
Odpowiedz
Zazwyczaj wyrównujesz dane, aby uzyskać lepszą wydajność. W przypadku większości procesorów dostęp do pamięci ma pewne ograniczenia w przypadku braku dostępu do określonych granic bajtów. W przypadku innych asemblerów często występuje w tym celu pewnego rodzaju. Większość kompilatorów wyrównuje również struktury danych (choć można je wyłączyć w celu debugowania).
Zobacz także Wikipedia entry.
Należy pamiętać, że nieulotnione systemy MIPS mogą nawet ulec awarii, jeśli spróbujesz uzyskać dostęp do niewyrównanych komórek pamięci (patrz here i here).
Czy istnieje odpowiednia instrukcja w innych asemblerach?
MASM posiada Align dyrektywy: http://msdn.microsoft.com/en-us/library/dwa9fwef(VS.80).aspx
wyrówna wszystko do potęgi dwóch. To nie jest instrukcja, jej dyrektywy, które zostaną przetłumaczone na język instrukcji
Co do jego wykorzystania, do exampe:
instrukcje MIPS32 są zawsze 32 bity długości. Zatem każda instrukcja powinna zaczynać się od granicy słowa. Dodanie dyrektywy .align zanim rozpocznie się kod, wyrównuje rzeczy do 32 bitów. Ma to wiele zalet, w tym, że do pobierania instrukcji wymagany jest tylko 1 dostęp do pamięci i prawdopodobnie będzie to korzystne dla pamięci podręcznej instrukcji.
Co powiesz na przechowywanie podwójnego spławika na stosie? Potrzebuje wyrównania 8 bajtów, prawda? –
Tak, podwaja wyrównanie do 64 bitów – Tom
- 1. MIPS "la" pseudo instruciton
- 2. Zapobieganie wykonaniu pamięci MIPS
- 3. Bezpłatny Pascal dla Androida na MIPS
- 4. Tłumaczenie pojedynczej linii C na zespół MIPS
- 5. Konwertuj Integer na Double w MIPS
- 6. MIPS - czy to ważne?
- 7. Zakres instrukcji skoku MIPS
- 8. Rejestracja rejestru MIPS $ gp
- 9. Wyrównaj listę i wypchnij tekst na dół.
- 10. Android NestedScrollView wyrównaj zawartość na górze
- 11. Zamieszanie dotyczące atrybutu "wyrównaj"
- 12. Wyrównaj tabelę pośrodku strony.
- 13. Wyrównaj obraz zachowując wysokość
- 14. wyrównaj makro kernel
- 15. Błąd składni w zespole MIPS
- 16. Odwracanie łańcucha w zespole MIPS
- 17. MIPS: Integer Mnożenie i dzielenie
- 18. MIPS - JAL confusion: $ ra = PC + 4 lub PC + 8?
- 19. Co powinienem wiedzieć, przechodząc z MIPS na x86?
- 20. Wyrównaj dwa obrazy w OpenCV
- 21. Centrum Bootstrap wyrównaj menu rozwijane
- 22. Wyrównaj tekst obok FontAwesome Icon
- 23. Wyrównaj printf output w Javie
- 24. Wyrównaj tekst legendy w ggplot
- 25. Wyrównaj elementy formularza w css
- 26. Co oznacza rt w formacie instrukcji MIPS?
- 27. Instrukcja LEA?
- 28. d3.js: Wyrównaj etykiety tekstowe między znacznikami na osi
- 29. Jaka jest różnica między MIPS i RISC?
- 30. Wyrównaj pasek postępu programu Twitter i znaczek
Dzięki za dodatkowe wyjaśnienia w linkach zewnętrznych! –