Co to jest montaż wbudowany?

Zespół wbudowany - nazywany także językiem asemblera lub asemblerem inline - jest blokiem kodu języka asemblera, który jest wstawiany bezpośrednio do funkcji i kodu źródłowego dla innego języka. Umożliwia to programistę wstawienia bloku czystego języka asemblera do programu, w którym reszta programu używa języka nie do montażu. Zdolność jest obsługiwana w niektórych językach - takich jak C, C ++ i Pascal - ale jest cechą określonego kompilatora używanego i niekoniecznie jest częścią standardu języka. W wielu przypadkach montaż wbudowany służy do uzyskania dostępu do specjalnych funkcji w środkowej jednostce przetwarzania (CPU), w celu optymalizacji kodu lub do wykonywania operatorów na bardzo niskim poziomie, takim jak napięcie pamięci. Chociaż określony kompilator lub język programowania może mieć obsługę tworzenia wykonywalnych międzyplatformowych, użycie zespołu wbudowanego zwykle ogranicza program do systemów, które mogą zastosować określone instrukcje montażu lub mieć pasujące architektuRe.

Istnieje kilka sposobów, w jakie język lub kompilator umożliwia włączenie zespołu wbudowanego w standardowym pliku kodu źródłowego. Jedną z najłatwiejszych metod jest po prostu zdefiniowanie początku bloku montażowego, po czym wszystkie polecenia są interpretowane jako montaż bezpośredni. Niektóre zintegrowane środowiska programistyczne (IDES) i kompilatory faktycznie pozwalają kodowi inline na użycie zmiennych zdefiniowanych w programie lub funkcji bez wyraźnego ładowania ich do rejestrów.

Innym sposobem, w jaki montaż wbudowany jest zdefiniowany w pliku źródłowym, jest użycie dedykowanej funkcji tylko w języku montażowym. W takim przypadku kodu wbudowanego zwykle nie można łączyć z kodem nie do montażu, takim jak instrukcja sterowania lub instrukcja zwrotu. Po wdrożeniu w ten sposób funkcja wbudowana zwykle musi również jawnie wypychać zmienne i wystające na stos, aby używać zmiennych lokalnych lub wykryć wartościstrona funkcji.

Jednym z najczęstszych zastosowań kodu montażowego wbudowanego jest optymalizację do małych segmentów programu. W zależności od sposobu zintegrowania kodu wbudowanego, może to oznaczać użycie bardziej ludzkich poleceń językowych owinięte wokół kodu wbudowanego, które bezpośrednio wykonują pewne działanie bardzo szybko i wydajnie. Ponadto, jeśli system docelowy jest znany, kod może korzystać z rejestrów i poleceń specyficznych dla sprzętu, które mogą sprawić, że program może być znacznie szybszy.

Zespół wbudowany może być używany do dostępu do części systemu operacyjnego, procesora lub nawet portów sprzętowych bezpośrednio, gdy inne metody mogą się nie udać lub spowodować błąd systemu. Można to użyć do szybkiej zmiany ram na karcie graficznej lub do wysyłania sygnałów bezpośrednio do określonego portu przerwania lub sprzętu. Jednym z niebezpieczeństw związanych z użyciem kodu montażowego w ten sposób jest jednak to, że małe błędy mogą być trudne do znalezienia lub spowodować awarię programu na niektórych systemach.

INNE JĘZYKI