Języki niskiego poziomu

 

Język maszynowy, kod maszynowy - (język procesora) – zestaw rozkazów procesora, w którym zapis programu wyrażony jest w postaci liczb binarnych stanowiących rozkazy oraz ich argumenty. CZYLI: Określone sekwencje liczb są rozkazami i/lub danymi bezpośrednio pobieranymi przez procesor wykonujący program. Określone sekwencje zer i jedynek oznaczają różne instrukcje, dla których spodziewane są odpowiednie dane w kolejnch seriach bitów (np. w kolejnych bajtach).

 

Język/Kod maszynowy to postać programu komputerowego (zwana postacią wykonywalną lub binarną) przeznaczona do bezpośredniego lub prawie bezpośredniego wykonania przez określony procesor (określony typ procesora). Język maszynowy jest nieprzenośny, ponieważ każda architektura procesora ma swój własny model programowy - m.in. własną listę rozkazów maszynowych.

 

Przykładowo w systemach z rodziny DOS/Windows programy w kodzie maszynowym są zapisane w plikach typu "com" oraz "exe", w systemach unixowych są to pliki typu „elf”.

 

Kod maszynowy nie może być wykonywany przez procesory innego typu. BRAK PRZENOŚNOŚCI KODU MIĘDZY PLATFORMAMI SPRZĘTOWYMI.

 

 

 

Przykładowy język/kod maszynowy oglądany przy użyciu tzw. Monitora kodu maszynowego (deasemblera):

 

 

 

 

Języki niskiego poziomu - ASSEMBLERY:

 

W asemblerach zasadniczo jedno polecenie odpowiada jednemu rozkazowi procesora. Są to języki powstałe na bazie języka maszynowego poprzez zastąpienie liczb odpowiadających fragmentom rozkazów kodu maszynowego ich symbolicznymi odpowiednikami. Dzięki zamianie liczb na tzw. mnemoniki można pisać programy w miarę zrozumiałe dla człowieka, a jednocześnie bezpośrednio tłumaczone na kod maszynowy procesora, co pozwala zapewnić duży stopień kontroli programisty nad zachowaniem procesora.

 

Assemblera używa się, gdy:

 

  • krytycznym czynnikiem jest prędkość wykonywania operacji - czyli do tworzenia fragmentów kodu wymagających bardzo wysokiej wydajności,

  • programujemy np. mikrokontrolery o niewielkich rozmiarach pamięci lub niewielkiej prędkości procesora.