2014-11-23 14 views

Odpowiedz

16

oznacza branch and exchange instruction set Co oznacza, że ​​zgodnie z lsb (najmniej znaczący bit) adresu do odgałęzienia do, procesor potraktuje następną instrukcję jako ARM lub jako kciuk.

Zwykle posiada adres zwrotny, oznacza to, że jest to zwrot z funkcji, a jeśli lsb z lr wynosi 1, to kod ten będzie traktowany jako kciuk, w przeciwnym razie potraktuje go jako RAMIĘ.

+0

Czy możesz uprościć to wyjaśnienie, moja wiedza na temat architektury ARM nie jest tak zaawansowana. – user2177940

+0

https://en.wikipedia.org/wiki/ARM_architecture#Thumb – MByD

+4

@ user2177940 Część 1: Przełączanie trybu. Procesor ARMv7 działa w jednym z dwóch trybów (Called ARM lub Thumb), które różnią się kodowaniem instrukcji (głównie w "kompletnych", ale dużych 4-bajtowych instrukcjach w porównaniu z "ograniczonymi", ale małymi 2-bajtowymi instrukcjami). Który tryb przełączania się na następny jest określany ** w czasie połączenia z 'bx/blx' **, czy adres do skoku jest równy czy nieparzysty (powoduje to przełączenie odpowiednio do trybu ARM lub Kciuk). –