Język maszynowy to język niskiego poziomu składający się z liczb binarnych lub bitów zrozumiałych dla komputera. Nazywa się go również kodem maszynowym lub kodem obiektowym i jest niezwykle trudny do zrozumienia. Jedynym językiem, jaki rozumie komputer, jest język maszynowy. Wszystkie programy i języki programowania, takie jak Swift i C++, tworzą lub uruchamiają programy w języku maszynowym, zanim zostaną uruchomione na komputerze. Kiedy wykonywane jest określone zadanie, nawet najmniejszy proces, język maszynowy jest przesyłany do procesora systemowego. Komputery są w stanie zrozumieć dane binarne tylko dlatego, że są urządzeniami cyfrowymi.
W komputerze wszystkie dane, takie jak filmy, programy i zdjęcia, są reprezentowane w postaci binarnej. Procesor przetwarza ten kod maszynowy lub dane binarne jako dane wejściowe. Następnie aplikacja lub system operacyjny pobiera wynikowe dane wyjściowe z procesora i wyświetla je wizualnie. Na przykład kod ASCII 01000001 reprezentuje literę „A” w języku maszynowym, mimo że na ekranie jest wyświetlana jako „A”.
Różne architektury procesorów wykorzystują inny kod maszynowy; jednakże kod maszynowy zawiera jedynki i zera. Na przykład, w porównaniu do procesora Intel x86 zawierającego architekturę CISC, procesor PowerPC potrzebuje innego kodu, który zawiera architekturę RISC. Aby uzyskać poprawną architekturę procesora, aby poprawnie uruchomić program, kompilator musi skompilować kod źródłowy wysokiego poziomu.
W przypadku programu lub akcji dokładny język maszynowy może różnić się w zależności od systemu operacyjnego, który opisuje, w jaki sposób kompilator zapisuje akcję w języku maszynowym. Podobnie zdjęcie zawiera ponad dziesiątki tysięcy danych binarnych, które określają kolor każdego piksela.
Programy komputerowe są tworzone w jednym lub większej liczbie języków programowania (na przykład Java, C++ lub Visual Basic). Kod programu musi zostać skompilowany tak, aby komputer mógł go zrozumieć, ponieważ języków programowania używanych do tworzenia programów komputerowych nie można zrozumieć bezpośrednio przez komputer. Kiedy kod programu jest kompilowany, jest on konwertowany na
01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100
język maszynowy, tak aby komputer mógł go zrozumieć.
int, aby podwoić
Przykłady języka maszynowego
Tekst ' Witaj świecie ' zostanie zapisane w języku maszynowym:
Poniżej podano inny przykład języka maszynowego, który wyświetli na ekranie literę „A” 1000 razy.
169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96
Wykonanie kodu maszynowego
Każda rodzina procesorów postępuje zgodnie ze specjalnie zaprogramowanym zestawem instrukcji, które są określone w kodzie maszynowym. Wszystkie drobne elementy, które można wykonać, czyli elementy składające się na ogólne funkcjonowanie maszyny, są określone przez określony układ podstawowych jednostek. Wszystkie podstawowe jednostki informacyjne są reprezentowane w formacie binarnym, który ma jedną lub dwie wartości „1” lub „0”. Ponieważ każda klasa procesorów wymaga konfiguracji strukturalnej pasującej do jej unikalnego zestawu instrukcji, podstawowe zestawy instrukcji wszystkich konfiguracji kodu maszynowego są powiązane z podobnie dopasowanymi klasami procesorów.
Zastosowania języka maszynowego
Poniżej omówiono typowe zastosowania języka maszynowego:
- Język maszynowy to język niskiego poziomu, który rozumieją maszyny, ale który ludzie mogą rozszyfrować za pomocą asemblera.
- Kompilator odgrywa ważną rolę między ludźmi a komputerami, ponieważ konwertuje język maszynowy na inny kod lub język zrozumiały dla ludzi.
- Język asemblera jest przeznaczony do zrozumienia języka maszynowego, ponieważ jest jego zdzierstwem.
Różnica między językiem maszynowym a językiem asemblera
Istnieje wiele różnic między językiem maszynowym a językiem asemblera. Poniżej znajduje się tabela zawierająca wszystkie różnice między nimi.
Język maszyny | Język programowania |
---|---|
Język maszynowy to język programowania niskiego poziomu składający się z liczb binarnych lub bitów, które mogą być odczytywane tylko przez maszyny. Nazywa się go również kodem maszynowym lub kodem obiektowym, w którym instrukcje są wykonywane bezpośrednio przez procesor. | Język asemblera jest językiem przeznaczonym wyłącznie dla ludzi, niezrozumiałym dla komputerów. W rezultacie działa jako łącznik między językami programowania wysokiego poziomu a językami maszynowymi, wymagając użycia asemblera do konwersji instrukcji na kod maszynowy lub obiektowy. |
Język maszynowy obejmuje cyfry binarne (0 i 1), szesnastkowe i ósemkowe, które mogą być zrozumiane tylko przez komputery i nie mogą być rozszyfrowane przez ludzi. | Mnemoniki, takie jak Mov, Add, Sub, End i inne, składają się na język asemblera, który ludzie mogą zrozumieć, wykorzystać i zastosować. |
W języku maszynowym nie można naprawiać błędów ani modyfikować, a funkcje języków maszynowych są odpowiednio zróżnicowane. | Język asemblera ma konwencjonalne zestawy instrukcji, a także możliwość poprawiania błędów i modyfikowania programów. |
Języki maszynowe są zależne od platformy i bardzo trudne do zrozumienia przez ludzi. | Składnia języków asemblera jest podobna do języka angielskiego; dlatego jest łatwy do zrozumienia przez człowieka. |
Języka maszynowego nie da się nauczyć, gdyż jest trudny do zapamiętania i służy jedynie jako kod maszynowy. | Język asemblera jest łatwy do zapamiętania i jest używany w aplikacjach/urządzeniach mikroprocesorowych i systemach czasu rzeczywistego. |
W języku maszynowym wszystkie dane są obecne w formacie binarnym, co zapewnia szybkie wykonanie. | W porównaniu z językiem maszynowym, szybkość wykonywania języka asemblera jest powolna. |
Sekwencje bitów są wykorzystywane przez język maszynowy do wydawania poleceń. Zero reprezentuje stan wyłączony lub fałszywy, a jeden reprezentuje stan włączony lub prawdziwy. Konwersja języka programowania wysokiego poziomu na język maszynowy zależy od procesora. | Zamiast używać surowych sekwencji bitów, język asemblera używa nazw i symboli „mnemotechnicznych”; dlatego użytkownicy nie muszą zapamiętywać kodów operacyjnych w języku asemblera. W językach asemblera ludzie mogą mapować kod na kod maszynowy, a kody są nieco bardziej czytelne |
Języki programowania pierwszej generacji to języki maszynowe, które nie wymagają tłumacza. | Drugą generacją języków programowania są języki asemblera, które wykorzystują asembler jako tłumacz do konwersji mnemoników na formę zrozumiałą dla maszyn. |
Język maszynowy jest zależny od sprzętu i nie pozwala na modyfikację. | Język asemblera nie jest przenośny, jest zależny od maszyny i można go łatwo modyfikować. |
W składni języka maszynowego istnieje większe ryzyko błędów. | W porównaniu z językiem maszynowym, w języku asemblera ryzyko błędów składniowych jest mniejsze. |