Instrukcja kodu maszynowego
Instrukcja kodu maszynowego, podprogram wewnętrzny – instrukcja (lub inna konstrukcja semantyczna języka), zdefiniowana w składni określonego języka programowania, umożliwiająca programowanie fragmentów kodu źródłowego w języku maszynowym danego komputera.
Stosowanie podprogramów wewnętrznych
Instrukcja kodu maszynowego jest specjalną instrukcją wprowadzoną, przez autorów niektórych implementacji języków wysokiego poziomu, w celu umożliwienia programowania hybrydowego: dany język wysokiego poziomu – język maszynowy. Taki sposób programowania jest stosowany przede wszystkim, w celu optymalizacji kodu wynikowego, szczególnie pod kątem wybranych fragmentów, mających istotny wpływ na wydajność wygenerowanego programu. Ponadto umożliwia programiście korzystanie z pewnych specyficznych cech konkretnego systemu komputerowego.
Języki programowania
Większość języków programowania wysokiego poziomu nie definiuje w swoich standardach konstrukcji programistycznych, umożliwiających kodowanie fragmentów programu w kodzie maszynowym. Takie możliwości są dodawane zwykle przez autorów konkretnych implementacji jako rozszerzenie niestandardowe.
Turbo/Borland Pascal
W implementacji języka Pascal stworzonej przez firmę Borland w ramach serii systemów programowania Turbo, o nazwie Turbo Pascal (Borland Pascal), udostępniono instrukcję inline umożliwiającą dołączanie podprogramów wewnętrznych zapisanych w kodzie maszynowym[1]. Dostępne są dwie formy stosowania tej konstrukcji:
- instrukcja inline
- jest traktowana jak instrukcja prosta i ma postać:
inline(kody_maszynowe)
, przy czym poszczególne kody w postaci liczb szesnastkowych lub identyfikatorów, są rozdzielane znakiem „/” - dyrektywa inline
- jest stosowana gdy cały definiowany podprogram (procedura lub funkcja) ma być zaprogramowana w kodzie maszynowym, postać definicji takiego podprogramu:
<procedure | function> identyfikator [(parametry)][:typ_rezultatu]; inline(kody_maszynowe)
;
Forth
W wielu implementacjach języka Forth istniała możliwość kodowania w języku maszynowym w postaci kodów liczbowych. Wymaga to jedynie użycia odpowiednich słów zdefiniowanych w danej implementacji lub odpowiednich kompilatorów (w sensie języka Forth). Przykładowo w dialekcie fig-Forth dla procesorów 8080, przykładowa sekwencja otwierająca podprogram wewnętrzny to CREATE BASE @ HEX
, umożliwiająca kodowanie w systemie szesnastkowym, a sekwencja kończąca to NEXT1 C3 C, , BASE !
[2].
Basic
W języku Basic programiści wykorzystywali instrukcję DATA do zapisywania kodu maszynowego, Tak zapisany program mógł być, po zainicjowaniu programu w języku Basic, wykonany znacznie szybciej niż instrukcje wysokiego poziomu w tym języku.
Zobacz też
Przypisy
- ↑ Andrzej Marciniak, Borland Pascal 7.0, Wyd. Nakom, Poznań 1994 r., seria: Biblioteka Użytkownika Mikrokomputerów, ISBN 83-85060-53-7, ISSN 0867-6011
- ↑ Jan Bielecki, Język FORTH, Wydawnictwa Naukowo-Techniczne, Warszawa 1988, Seria: Mikrokomputery, ISBN 83-204-0930-6