Po otrzymaniu mojego Raspberry Pi zdecydowałem, że chcę nauczyć się pisać kod asemblera ARM. Moje pytanie brzmi: co muszę zacząć? Zakładam, że jest już zainstalowany kompilator, ale nie wiem, co to jest (może gcc?). Każda pomoc jest mile widziana!
Po otrzymaniu mojego Raspberry Pi zdecydowałem, że chcę nauczyć się pisać kod asemblera ARM. Moje pytanie brzmi: co muszę zacząć? Zakładam, że jest już zainstalowany kompilator, ale nie wiem, co to jest (może gcc?). Każda pomoc jest mile widziana!
Odpowiedzi:
Zależy od tego, ile asemblera chcesz napisać. Jeśli chcesz pisać tylko małe fragmenty osadzone w kodzie C, gcc
to rzeczywiście jest to, czego szukasz. Przykłady użycia asm
dyrektywy w C patrz: odsyłacz do asmline w: ARM GCC Inline Assembler Cookbook
Z drugiej strony, jeśli chcesz napisać więcej niż tylko małe fragmenty, lepiej będzie użyć pełnego asemblera. To będzie dostępny jako albo as
, gas
lub obu (alias).
I na koniec musisz się trochę dowiedzieć o zestawie instrukcji ARM. Przydatne odniesienie znajduje się w: ARM1176JZF-S Technical Reference Manual .
Uwaga: pamiętaj, które RPi obsługują tylko instrukcje armv6 - więc nie próbuj używać niczego z armv7
Powodzenia!! :)
Swoją przygodę z kodem asemblera ARM rozpocząłem niedawno, a oto moje zasoby:
Chociaż czuję się komfortowo z interfejsem wiersza poleceń, nie mogłem się oprzeć wygodom GUI. Jakiś czas temu odkryłem, że mogę użyć CodeBlocks IDE do opracowania programów w języku asemblera ARM w Raspberry Pi. Napisałem więc samouczek i dołączyłem do samouczka programowania zestawu Raspberry Pi, który napisałem dla strony z książką montażu Mazidi ARM:
http://www.microdigitaled.com/ARM/ARM_ASM_books.htm
Na stronie kliknij link „Programowanie zestawu ARM za pomocą graficznego interfejsu użytkownika Raspberry Pi”.
Mam nadzieję że to pomoże.
GCC jest instalowane domyślnie. Jeśli jesteś nowy w Raspberry Pi, polecam spojrzenie na łatwiejszy język programowania niż montaż ARM. Nie ma żadnych IDE do złożenia, więc będziesz musiał użyć edytora tekstu i zmontować go za pomocą terminala. Polecam Gedit ze względu na łatwość użycia. Aby uzyskać podświetlanie składni dla asemblera, musiałem przejść do github, a konkretnie do strony shinyquagsire23. To jest bardzo ładne. Co do pomocy Najlepszym zasobem, jaki znalazłem, jest „Raspberry Pi Assembly Language: Raspbian Beginners” Bruce'a Smitha. Możesz go znaleźć na Amazon. Wyjaśnia montaż w jeden z najczystszych i najprostszych sposobów, jakie znalazłem.
Ucz się z wykonalnymi przykładami
Pracuję nad: https://github.com/cirosantilli/arm-assembly-cheat
Cechy:
printf
imemcpy