Instrukcja kodu maszynowego

Z Wikipedii, wolnej encyklopedii

Instrukcja kodu maszynowego, podprogram wewnętrznyinstrukcja (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[edytuj | edytuj kod]

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 poziomuję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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

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ż[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]