• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Asembler



    Podstrony: 1 [2] [3] [4]
    Przeczytaj także...
    Mikrokontroler (mikrokomputer jednoukładowy skrót ang. MCU lub μC) – scalony system mikroprocesorowy, zrealizowany w postaci pojedynczego układu scalonego zawierającego jednostkę centralną (CPU), pamięć RAM oraz na ogół pamięć programu i rozbudowane układy wejścia-wyjścia.Konrad Zuse (ur. 22 czerwca 1910 r. w Berlinie - zm. 18 grudnia 1995 r. w Hünfeld) – niemiecki inżynier, konstruktor, pionier informatyki; konstruktor prekursorskiego komputera działającego w systemie binarnym.

    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.

    COBOL (ang. COmmon Business Oriented Language) – język programowania stworzony z głównym przeznaczeniem do prac programistycznych w dziedzinach ekonomii i biznesu.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.

    Język asemblera[ | edytuj kod]

    Języki asemblera (zwyczajowo asemblery) to rodzina języków programowania niskiego poziomu, których jedno polecenie odpowiada zasadniczo jednemu rozkazowi procesora. Języki te powstały na bazie języków maszynowych danego procesora poprzez zastąpienie kodów operacji ich mnemonikami. Dzięki stosowaniu kilkuliterowych skrótów poleceń zrozumiałych dla człowieka pozwala to z jednej strony na tworzenie oprogramowania, z drugiej strony bezpośrednia odpowiedniość mnemoników oraz kodu maszynowego umożliwia zachowanie wysokiego stopnia kontroli programisty nad działaniem procesora. Składnia języka asemblera zależy od architektury procesora, ale i używanego asemblera, jednak zwykle autorzy asemblerów dla danego procesora trzymają się oznaczeń danych przez producenta.

    Lotus 1-2-3 – arkusz kalkulacyjny opracowany przez przedsiębiorstwo Lotus Development Corporation (obecnie część IBM).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.

    Pierwotnie był to podstawowy język programowania procesorów. W wyniku poszukiwania efektywniejszych metod programowania i pojawianiem się kolejnych języków interpretowanych i kompilowanych języki asemblerów straciły na znaczeniu. Z tego powodu współcześnie nie korzysta się z nich do pisania całych programów na komputery osobiste. Jednak istnieją zastosowania, np. w przypadku programowania mikrokontrolerów, systemów wbudowanych, sterowników sprzętu, gdzie nadal znajdują one swoje miejsce. Korzysta się z nich także do pisania kluczowych fragmentów kodu wymagających najwyższej wydajności, wyjątkowo małych rozmiarów kodu wynikowego lub również niewielkich fragmentów systemów operacyjnych.

    Programowanie komputerów to proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych (mikrokontrolery). Kod źródłowy jest napisany w języku programowania, z użyciem określonych reguł, może on być modyfikacją istniejącego programu lub czymś zupełnie nowym. Programowanie wymaga dużej wiedzy i doświadczenia w wielu różnych dziedzinach, jak projektowanie aplikacji, algorytmika, struktury danych, znajomość języków programowania i narzędzi programistycznych, wiedza nt. kompilatorów, czy sposób działania podzespołów komputera. W inżynierii oprogramowania, programowanie (implementacja) jest tylko jednym z etapów powstawania programu.Commodore 64, C64, CBM64 – komputer domowy z lat 80. XX wieku firmy Commodore Business Machines (CBM). C64 był dotychczas najlepiej sprzedającym się komputerem w historii informatyki.

    Ekstrakod[ | edytuj kod]

    W niektórych językach asemblera występują mnemoniki, tzw. ekstrakody, którym nie odpowiadają instrukcje procesora, lecz są realizowane programowo, zwykle przez funkcje systemu operacyjnego lub biblioteczne.

    Perspektywa historyczna[ | edytuj kod]

    Języki asemblera i ich użycie sięgają aż do czasów wprowadzenia zapisywanych programów komputerowych. Pierwszy język asemblera został opracowany w 1947 roku przez Kathleen Booth dla ARC2 w Birkbeck, po współpracy z Johnem von Neumannem i Hermanem Goldstine’em w Instytucie Studiów Zaawansowanych w Princeton. W 1949 EDSAC posiadał asemblera nazwanego rozkazami początkowymi wykorzystującego jedno-literowe mnemoniki. SOAP był językiem asemblera dla komputera IBM 650, napisanym przez Stana Poleya w 1955.

    W informatyce, adres pamięci to unikatowy identyfikator dla części jednostkowej pamięci, w której CPU lub inne urządzenie może zachować pewną ilość danych do późniejszego wykorzystania. W nowoczesnych komputerach każdy adres identyfikuje pojedynczy bajt pamięci; dane za duże do przechowania w jednym bajcie mogą być zachowane w kilku bajtach o następujących po sobie adresach. Niektóre mikroprocesory zostały zaprojektowane aby być adresowalne dwubajtowo, czyli typowa jednostka przechowywania jest większa od bajta. Wśród przykładów znajdują się Texas Instruments TMS9900 i National Semiconductor IMP-16, wykorzystujące ten typ adresowania.Amiga (hiszp. la amiga – przyjaciółka) – popularna marka komputerów produkowanych między innymi przez firmę Commodore. Po bankructwie Commodore marka została przejęta przez firmę Escom, a następnie przez Gateway. W końcu wyłoniła się samodzielna firma Amiga INC, która po bankructwie sprzedała wszelkie prawa firmie KMOS. Z kolei KMOS zmieniło nazwę na Amiga Inc.

    Języki asemblera eliminują znaczącą część podatnego na błędy, męczącego oraz zajmującego dużo czasu programowania pierwszej generacji które wymagane było przy wczesnych komputerach. Uwolniły one programistów od zapamiętywania kodów numerycznych oraz ręcznego obliczania adresów. Były kiedyś powszechnie używane, jednak w latach ‘80 i ‘90 ich zastosowanie zostało wyparte przez języki wyższego poziomu, idąc z poszukiwaniem większej efektywności programowania. W dzisiejszych czasach, języki asemblera wciąż są używane do bezpośredniego manipulowania sprzętem, dostępu do specjalnych instrukcji procesora lub do zaadresowania krytycznych problemów optymalizacyjnych.

    Sterownik urządzenia to program lub fragment programu odpowiadający za dane urządzenie i pośredniczący pomiędzy nim, a resztą systemu komputerowego. Zwykle uabstrakcyjnia pewne cechy urządzenia, choć może jedynie zajmować się kwestiami uprawnień dostępu i udostępniać urządzenie bez żadnej ingerencji. Wtedy program, który z niego korzysta też jest w pewnym sensie sterownikiem.John von Neumann (ur. 28 grudnia 1903 w Budapeszcie, zm. 8 lutego 1957 w Waszyngtonie) – węgierski matematyk, inżynier chemik, fizyk i informatyk, pracujący głównie w Stanach Zjednoczonych. Wniósł znaczący wkład do wielu dziedzin matematyki – w szczególności był głównym twórcą teorii gier, teorii automatów komórkowych (w które pewien początkowy wkład miał także Stanisław Ulam) i stworzył formalizm matematyczny mechaniki kwantowej. Uczestniczył w projekcie Manhattan. Przyczynił się do rozwoju numerycznych prognoz pogody.

    Typowe zastosowania to sterowniki urządzeń, nisko-poziomowe systemy wbudowane oraz systemy czasu rzeczywistego.

    Na przestrzeni lat, wiele programów było napisanych całkowicie w językach asemblera.

    Burroughs MCP (1961) był pierwszym komputerem dla którego system operacyjny nie był osadzony wyłącznie na języku asemblera; napisany w ESPOL, z nadzbioru Algol.

    Również wiele aplikacji komercyjnych było napisanych w językach asemblera, w tym duża część oprogramowania typu mainframe IBM, napisanego przez duże korporacje. Ostatecznie wyparły je COBOL, FORTRAN i niektóre PL/I, jednak pewna liczba organizacji posiadała strukturę opartą na językach asemblera aż do końca lat ‘90.

    Grace Murray Hopper, z d. Grace Brewster Murray (ur. 9 grudnia 1906 w Nowym Jorku, zm. 1 stycznia 1992 w Arlington w stanie Wirginia) – amerykańska pionierka informatyki, przez szereg lat służyła w United States Navy, w 1986 przeszła w stan spoczynku w stopniu kontradmirała (Rear Admiral - lower half).x86-64 (nazywane też amd64 i x64) – opracowane przez AMD rozszerzenie architektury IA-32, którego głównym celem było ułatwienie zarządzania pamięcią operacyjną powyżej 4GiB poprzez dodanie obsługi 64-bitowych liczb stałoprzecinkowych do jednostki arytmetyczno-logicznej. Ze względu na zachowanie wysokiej zgodności wstecznej, możliwe jest jednoczesne uruchamianie aplikacji 32- i 64-bitowych. Pierwszymi procesorami implementującymi nową architekturę były zaprezentowane w roku 2003 Opteron i Athlon 64. Później swoje implementacje wprowadziły firmy Intel (Intel 64) i VIA.

    Większość wczesnych mikrokomputerów polegała na ręcznym kodowaniu języka asemblera, w tym większość systemów operacyjnych oraz dużych aplikacji. Było tak, ponieważ systemy te posiadały dotkliwe ograniczenia zasobów, narzuconą idiosynkratyczną pamięć i architekturę wyświetlaczy, oraz dostarczały ograniczonych, niestabilnych usług systemowych. Być może ważniejszy był brak kompilatorów pierwszej-klasy dla języków wysokopoziomowych, odpowiednich do użycia w mikrokomputerach.

    ZX Spectrum – jeden z pierwszych małych komputerów domowych wyprodukowanych przez angielską firmę Sinclair Research Ltd. w roku 1982, następca ZX-81. Początkowo model miał nazywać się ZX-82.Mainframe (ang. main – główny, frame – struktura) (często w Stanach Zjednoczonych nazywany "Big Iron", dawniejsze polskie określenie to "komputery głównego szeregu") – klasa komputerów używanych głównie przez duże organizacje dla krytycznych aplikacji (np. finansowych, statystycznych). Są systemami o dużej niezawodności. W czasie, gdy powstawały i odnosiły największe sukcesy, ich alternatywą były minikomputery i kalkulatory.

    Czynnik psychologiczny również mógł odegrać ważną rolę; pierwsza generacja programistów mikrokomputerów ciągnęła za sobą hobbystyczną postawę „majsterkowicza”.

    W bardziej komercyjnym spektrum do najważniejszych powodów użycia języka asemblera zaliczamy jego minimalistyczną postać, minimalną wielkość potrzebnych zasobów, szybkość oraz niezawodność.

    Typowe przykłady dużych programów napisanych w języku asemblera w dzisiejszych czasach to system operacyjny IBM PC DOS, kompilator Turbo Pascal oraz wczesne aplikacje, takie jak program do arkuszy kalkulacyjnych Lotus 1-2-3.

    Taśmy dziurkowane (perforowane), znane od połowy XIX wieku, używano jako nośnik do zapisywania danych. Były do tego celu również stosowane obok kart dziurkowanych w pierwszych komputerach. Z czasem zostały zastąpione przez bardziej pojemne media np. taśmy magnetyczne.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).

    Według niektórych ludzi w branży, język asemblera był najlepszym językiem komputerowym do uzyskania najwyższej wydajności z Sega Saturn, konsoli która była znana z notorycznie trudnego tworzenia gier. Gra NBA Jam z 1993 roku jest kolejnym tego przykładem.

    Był również podstawowym językiem programowania wielu popularnych komputerów domowych lat ‘80 i ‘90 (takich jak MSX, Sinclair ZX Spectrum, Commodore 64, Commodore Amiga, Atari ST). Było tak w dużej części przez to, że dialekty BASIC-a na tych systemach nie oferowały dostatecznej szybkości wykonania oraz niewystarczającego zaplecza aby w pełni wykorzystać potencjał sprzętu na tych komputerach. Niektóre systemy mają nawet zintegrowane środowisko programistyczne (IDE) z wysoko rozwiniętymi funkcjami debugowania i macro.

    Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój.Herman Heine Goldstine (ur. 13 września 1913 w Chicago, zm. 16 czerwca 2004 w Filadelfii) - matematyk i oficer amerykański, silnie związany z Uniwersytetem Chicago, gdzie uzyskał stopnie bakałarza, magistra i doktora nauk matematycznych; tu również w latach powojennych wykładał.

    Bieżące użycie[ | edytuj kod]

    Od zawsze debatowano nad użytecznością i wydajnością języka asemblera w stosunku do języków wysokopoziomowych. Ma on określone zastosowania niszowe tam, gdzie jest to ważne.

    Asembler może być użyty do optymalizacji prędkości lub rozmiaru. W przypadku optymalizacji prędkości, używane są nowoczesne kompilatory optymalizacyjne do renderowania języków wysokiego poziomu do kodu, który może działać tak szybko, jak ręcznie napisany asembler. Pomimo kontrprzykładów, które można znaleźć, złożoność nowoczesnych procesorów i podsystemów pamięci sprawia, że efektywna optymalizacja staje się coraz trudniejsza dla kompilatorów, a także programistów montażowych.

    Sinclair Research Ltd. – brytyjskie przedsiębiorstwo elektroniczne założone przez sir Clive Sinclaira w roku 1961 (wówczas jako Sinclair Radionics) w Cambridge.System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.

    Asembler[ | edytuj kod]

    Asembler (ang. assemble – składać) to program dokonujący tłumaczenia języka asemblera na język maszynowy, czyli tzw. asemblacji. Jest to odpowiednik kompilatora dla języków wyższych poziomów. Program tworzony w innych językach programowania niż asembler jest zwykle kompilowany do języka maszynowego (w wyniku pracy asemblera), a następnie zamieniany na kod binarny przez program asemblera.

    Turbo Assembler, inaczej TASM - pakiet programistyczny firmy Borland, w którego skład wchodzi asembler, linker, debuger oraz kompilator zasobów. Sam pakiet zawiera w sobie wszystkie potrzebne narzędzia do pisania programów 16 i 32 bitowych dla systemów operacyjnych DOS i Windows. Jest również podstawowym komponentem pakietu C++ Builder. Assembler interpretuje, poza standardowymi mnemonikami, również wiele specjalnych makroinstrukcji (jak np. if znane z języków wyższego poziomu).Informatyka – dyscyplina nauki zaliczana do nauk ścisłych oraz techniki zajmująca się przetwarzaniem informacji, w tym również technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informację. Początkowo stanowiła część matematyki, później rozwinęła się do odrębnej dyscypliny – pozostaje jednak nadal w ścisłej relacji z matematyką, która dostarcza informatyce podstaw teoretycznych.

    Powtarzające się często schematy programistyczne oraz wstawiane fragmenty kodu doprowadziły do powstania tzw. makroasemblerów, które rozszerzają asemblery o obsługę makr przed właściwą asemblacją, co zbliża je nieco do pierwszych wersji języka C.

    Podstrony: 1 [2] [3] [4]




    Warto wiedzieć że... beta

    Kod operacji (ang. opcode) – w informatyce jest to liczba, będąca fragmentem rozkazu przekazywanego do wykonania do procesora, która informuje jaka operacja ma być wykonana. Każde polecenie assemblera jak add, sub, itd. posiada swój numer, na który jest zamieniane podczas kompilacji do kodu maszynowego. Zbiór kodów dla danego procesora jest określany w jego modelu programowym.
    Turbo Pascal – jedna z popularniejszych implementacji kompilatorów języka Pascal, zintegrowane środowisko programistyczne, produkt firmy Borland International dla procesorów Z-80 (system CP/M) oraz rodziny Intel 80x86 i nowszych. Obecnie nie jest już rozwijany. Następcą Turbo Pascala jest Borland Delphi.
    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.
    Sega Saturn (po japońsku: セガサターン) – 32-bitowa konsola do gier firmy Sega wydana w Japonii 22 listopada 1994 a w północnej Ameryce w 11 maja 1995. W dniu premiery konsoli w Japonii sprzedano ok. 170 000 egzemplarzy. Przez pewien czas konkurent Sony PlayStation. Ponieważ konstrukcja została mocno zmodyfikowana tuż przed wprowadzeniem konsoli na rynek, Sega nie potrafiła tak usprawnić produkcji (czyli zmniejszyć kosztów), by nawiązać cenową walkę z firmą Sony. W momencie premiery cena konsoli w Japonii wynosiła 44 800 jenów (ok. 490 dolarów), w USA 399 dolarów, a produkt Sony był tańszy o ok. 100 dolarów. Początkowo konsola dobrze się sprzedawała i w ciągu 2 tygodni sprzedano 2,5 mln egzemplarzy. Wzrastająca popularność konsoli Sony PlayStation zmieniła jednak tę sytuację.
    MERA 300 – to polski minikomputer o 8-bitowej architekturze, a także nazwa serii komputerów stanowiących kolejne rozwinięcia komputera MERA 300.
    Fortran (od wersji 90 do aktualnej) a dawniej FORTRAN (do wersji 77 włącznie) (od ang. FORmula TRANslator) – język programowania pierwotnie zaprojektowany do zapisu programów obliczeniowych, był niegdyś językiem proceduralnym, obecnie jest nadal rozwijanym językiem ogólnego przeznaczenia. Umożliwia programowanie strukturalne, obiektowe (Fortran 90/95), modularne i równoległe (Fortran 2008). Jego zastosowaniami są, między innymi, obliczenia naukowo-inżynierskie, numeryczne, symulacja komputerowa itp.
    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.:

    Reklama

    Czas generowania strony: 0.03 sek.