• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Kod maszynowy

    Przeczytaj także...
    Lista rozkazów procesora (ang. instruction set) – zestaw podstawowych instrukcji, jakie dany procesor potrafi wykonać.Programista, zwany też potocznie koderem to osoba, która tworzy programy komputerowe w pewnym języku programowania. Termin ten może odnosić się także do specjalisty w jednej dziedzinie programowania. Większość programistów zna co najmniej kilka języków programowania (np. C, C++, Java), lecz specjalizuje się tylko w wybranych z nich. Nazwa głównego języka jest często dodawana do nazwy stanowiska, np. programista C++, aby podkreślić specjalizację.
    Kod bajtowy (ang. bytecode) – nazwa reprezentacji kodu używanej przez maszyny wirtualne oraz przez niektóre kompilatory. Kod składa się z ciągu instrukcji (których kody operacji mają zwykle długość jednego bajta, stąd nazwa), które nie odpowiadają bezpośrednio instrukcjom procesora i mogą zawierać instrukcje wysokiego poziomu (takie jak np. stwórz obiekt klasy X, połącz dwa łańcuchy itd.), jednak w przeciwieństwie do kodu źródłowego wymagają analizy tylko pojedynczych poszczególnych operacji.
    Przykład kodu maszynowego (kolumna druga rozpoczynająca się od 6C 36 00) uwidocznionego za pomocą monitora kodu maszynowego

    Język maszynowy, kod maszynowyzestaw rozkazów procesora, w którym zapis programu wyrażony jest w postaci liczb binarnych stanowiących rozkazy oraz ich argumenty.

    Język wysokiego poziomu (autokod) – typ języka programowania, którego składnia i słowa kluczowe mają maksymalnie ułatwić rozumienie kodu programu dla człowieka, tym samym zwiększając poziom abstrakcji i dystansując się od sprzętowych niuansów. Kod napisany w języku wysokiego poziomu nie jest bezpośrednio „zrozumiały” dla komputera – większość kodu stanowią tak naprawdę normalne słowa, np. w języku angielskim. Aby umożliwić wykonanie programu napisanego w tym języku należy dokonać procesu kompilacji.Z4 – komputer zerowej generacji zaprojektowany przez niemieckiego inżyniera Konrada Zuse i zbudowany przez jego firmę Zuse KG w 1950 r. dla szwajcarskiej uczelni ETH Zürich (Konfederacyjna Wyższa Szkoła Techniczna w Zurychu). W 1954 został przeniesiony do Institut Franco-Allemand des Recherches de St. Louis we Francji, gdzie był używany do roku 1959. Był to pierwszy sprzedany na świecie komputer, który wyprzedził o 5 miesięcy brytyjski Ferranti Mark I i o 10 miesięcy maszynę UNIVAC I.

    Był to jedyny język programowania komputerów zerowej generacji z wyjątkiem komputera Z4, a powszechny w początkowym okresie rozwoju komputerów pierwszej generacji.

    Kod maszynowy może być generowany w procesie kompilacji (w przypadku języków wysokiego poziomu) lub asemblacji (w przypadku języków niskiego poziomu). W trakcie procesu generowania kodu maszynowego często tworzony jest przenośny kod pośredni zapisywany w pliku obiektowym. Następnie kod ten pobrany z pliku obiektowego poddawany jest konsolidacji (linkowaniu) z kodem w innych plikach, w celu utworzenia ostatecznej postaci kodu maszynowego, który będzie zapisany w pliku wykonywalnym.

    Asembler (z ang. assembler) – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem.Konsolidacja (linkowanie od ang. link - łączyć) to proces polegający na połączeniu skompilowanych modułów (plików zawierających kod obiektowy lub plików bibliotek statycznych) i utworzeniu pliku wykonywalnego lub rzadziej innego pliku obiektowego. Dodatkowo podczas konsolidacji do pliku wynikowego mogą być dołączone odpowiednie nagłówki i informacje charakterystyczne dla konkretnego formatu pliku wykonywalnego.

    Język maszynowy jest nieprzenośny, ponieważ każda architektura procesora ma swój własny model programowy, a więc m.in. listę rozkazów maszynowych.

    Kod maszynowy[]

    Kod maszynowy to postać programu komputerowego (zwana postacią wykonywalną lub binarną) przeznaczona do bezpośredniego lub prawie bezpośredniego wykonania przez procesor. Jest ona dopasowana do konkretnego typu procesora i wyrażona w postaci rozumianych przez niego kodów rozkazów i ich argumentów. Jest to postać trudna do bezpośredniej analizy przez człowieka, dlatego, by ułatwić sobie zadanie, używa się monitorów kodu maszynowego lub deasemblerów.

    DLL (z ang. Dynamic-Link Library - biblioteka łączona dynamicznie) – w środowisku Microsoft Windows biblioteka współdzielona (z ang. shared library), która przechowuje implementacje różnych podprogramów programu lub zasoby programu. Podprogramy i zasoby zawarte w bibliotece DLL mogą być wykorzystane bezpośrednio lub pośrednio (za pośrednictwem innej biblioteki DLL) przez dowolny plik wykonywalny, sama biblioteka DLL nie jest samodzielnym programem.Program komputerowy (ang. computer program) - sekwencja symboli opisująca obliczenia zgodnie z pewnymi regułami zwanymi językiem programowania. Program jest zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej), czasami bezpośrednio – jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub pośrednio – gdy jest interpretowany przez inny program (interpreter). Program może być ciągiem instrukcji opisujących modyfikacje stanu maszyny ale może również opisywać obliczenia w inny sposób (np. rachunek lambda).

    W systemach z rodziny DOS/Windows w kodzie maszynowym zapisane są programy umieszczone w plikach typu com i exe. Pliki com mogą mieć maksymalnie wielkość 64 kB, więc wszystkie odwołania w programie są bliskie, toteż problemy z odwołaniami dalekimi nie istnieją. Pliki typu exe zawierają ponadto dodatkowe informacje, np. adresy dalekich skoków, które są ustawiane w momencie wczytywania programu do pamięci komputera (w 16-bitowym trybie pracy procesora), a także informacje potrzebne do łączenia programu z bibliotekami dynamicznymi (DLL). W 32- i 64-bitowym trybie procesora każdy uruchomiony proces (program) ma przydzieloną własną wirtualną przestrzeń adresową, co izoluje go od innych programów i czyni go niezależnym.

    Dwójkowy system liczbowy, system binarny, bin – pozycyjny system liczbowy, w którym podstawą jest liczba 2. Do zapisu liczb potrzebne są tylko dwie cyfry: 0 i 1.Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój.

    Kod maszynowy nie może być wykonywany przez procesory innego typu, niż ten, dla którego został napisany. Niesie to za sobą wiele problemów związanych z przenośnością oprogramowania. Aby ich uniknąć, rozpowszechnia się programy w formie kodu źródłowego (np. oprogramowanie FLOSS) lub w formie kodu pośredniego (np. Java, .NET).

    System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.Komputery zerowej generacji to maszyny konstruowane przed pojawieniem się uniwersalnych, elektronicznych maszyn cyfrowych, o możliwościach dzisiejszych prostych i średnich kalkulatorów programowanych.

    Generowanie kodu maszynowego następuje za pomocą translatora, który przekształca czytelny dla programisty zapis w języku programowania w odpowiadające mu kody instrukcji maszynowych. Postać i treść kodu maszynowego zależy nie tylko od kodu źródłowego programu, ale też od translatora, systemu operacyjnego, wersji bibliotek, typu procesora i jego języka maszynowego. Języki wysokiego poziomu wraz z odpowiednimi bibliotekami i kompilatorami umożliwiają użycie tego samego programu źródłowego do budowy programu pracującego na różnych systemach operacyjnych, różnych procesorach, itd. Niepoprawnie napisany kod źródłowy może powodować problemy podczas procesu translacji na niektóre postacie kodu maszynowego.

    Monitor - program komputerowy służący do nadzoru nad stanem, lub czynnościami wykonywanymi przez komputer. Może to oznaczać trzy różne rzeczy podlegające nadzorowi:Biblioteka dynamiczna – rodzaj biblioteki, która łączona jest z programem wykonywalnym dopiero w momencie jego wykonania. Aby tego dokonać, system operacyjny komputera musi posiadać pewne funkcje, które umożliwiają łączenie dynamiczne.

    Jeśli chodzi o kod źródłowy w asemblerze, to jest silnie związany z konkretną architekturą procesora i zazwyczaj nie można go uruchomić na innej bez wprowadzania zmian. (window.RLQ=window.RLQ||).push(function(){mw.log.warn("Gadget \"edit-summary-warning\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");mw.log.warn("Gadget \"wikibugs\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");mw.log.warn("Gadget \"ReferenceTooltips\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");mw.log.warn("Gadget \"main-page\" styles loaded twice. Migrate to type=general. See \u003Chttps://phabricator.wikimedia.org/T42284\u003E.");});

    Procesor (ang. processor), także CPU (ang. Central Processing Unit) – urządzenie cyfrowe sekwencyjne, które pobiera dane z pamięci, interpretuje je i wykonuje jako rozkazy. Wykonuje on ciąg prostych operacji (rozkazów) wybranych ze zbioru operacji podstawowych określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora.Plik obiektowy to rodzaj pliku binarnego generowanego przez kompilator lub asembler podczas kompilacji pliku z kodem źródłowym lub podczas łączenia plików obiektowych przez konsolidator (linker).



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    Model programowy procesora (ang. ISA - Instruction Set Architecture), czasem także nieściśle architektura procesora — ogólne określenie dotyczące organizacji, funkcjonalności i zasad działania procesora, widoczne z punktu widzenia programisty jako dostępne mechanizmy programowania. Na model programowy procesora składają się m.in.:
    Translator to specjalny program komputerowy (lub urządzenie), dokonujący tłumaczenia (translacji) programu napisanego w języku programowania, z postaci źródłowej do postaci wynikowej, zrozumiałej dla maszyny. Czasami zamiast określenia kod wynikowy używa się równoważnego kod obiektowy.
    Język niskiego poziomu – typ języka programowania, który w małym stopniu abstrahuje od konstrukcji jednostki centralnej komputera. Innymi słowy, język ten wykazuje duże podobieństwo do kodu maszynowego, zaś kompilacja jest w miarę nieskomplikowana.
    Język programowania – zbiór zasad określających, kiedy ciąg symboli tworzy program komputerowy oraz jakie obliczenia opisuje.
    DOS (ang. Disk Operating System) – pierwszy przenośny (Disk) system operacyjny OS komputerów PC i mikrokomputerów lat 80. rezydujący nad BIOS-em, zawierający m.in. rozszerzenia programowe procedur sprzętowych BIOSu i interpreter komend. DOS zawiera niektóre doświadczenia systemu klasy CP/M.
    Argument (parametr aktualny), w informatyce, to element składni w określonym języku programowania, który w wyniku wywołania podprogramu, zostaje utożsamiony (skojarzony) z określonym parametrem podprogramu. Można stwierdzić, że argument konkretyzuje pewien abstrakcyjny parametr (nadając mu konkretną wartość, kojarząc parametr z określonym miejscem pamięci, zwracając konkretną wartość do miejsca wywołania itp.).
    Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) . Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.

    Reklama

    Czas generowania strony: 0.041 sek.