Właśnie zaczynam studiować język asemblera ARM, i nie jestem pewien jak używać MOV do przeniesienia bezpośredniej liczby do rejestru.Jak używać instrukcji MOV w ARM z bezpośrednim numerem jako drugim operandem
Z podręcznika referencyjnego ARM i mojego podręcznika wynika, że zakres natychmiastowej liczby po instrukcji MOV wynosi 0-255. Ale kiedy testuję na własnym komputerze w ADS 1.2 IDE, instrukcja
MOV R2, #0xFFFFFFFF
wykonuje się dobrze. Czy liczba 0xFFFFFFFF poza zakresem nie jest zgodna ze specyfikacją?
Mam nadzieję, że ktoś może mi pomóc.
Pozdrawiam.
@Michael Dzięki za porady. Właśnie tego chcę wiedzieć! :-) –
Czy ktoś wie ** dlaczego ** asembler buduje niektóre wartości, ale załaduje inne bezpośrednio? Rozglądanie się po kodzie Newtona ROM (StrongArm 110) ma wiele "ładunków jednoosobowych" (jak "MOV r1, 0x0c1b518"), ale cały mój kod wychodzi z "ładunkiem nagromadzonym" - jak poniższy kod: –
.. (Ups, wczesny błąd księgowania) .. jak "MOV r1, 0x0C000000/ADD r1, r1,0x100000". Zakładam, że może to mieć coś wspólnego z tym, jak procesor koduje wartości 32-bitowe. Czy procesor mikrokodu jest wydajniejszy w budowaniu liczb przy użyciu pojedynczego pliku MOV, a następnie ADD? –