JSA (assembler pro PC) - Úvod
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

JSA (assembler pro PC) - ÚvodJSA (assembler pro PC) - Úvod

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

JSA (assembler pro PC) - Úvod

Google       Google       25. 8. 2005       22 440×

Úvod do jazyka symbolických adres někdy nazývaneho assembler, pro procesory x86.

  • Úvod
  • Doporučené programové vybavení
  • Vkládaný assembler v Turbo Pascal
  • Vkládaný assembler v C
..

Reklama
Reklama

Úvod

Jazyk symbolických adres (dále JSA) je hodně podobný storojovému kódu. JSA vznikl někdy v padesátých letech pro velké sálové počítače, kde nahradil srojový kód, ve kterém se tehdy programovalo. Jedná se o nízkoúrovňový jazyk, jenž se vyznačuje velkou rychlostí oproti vysokoúrovňovým systémovým jazykům (C, C++, Object Pascal, ...) nebo oproti třeba skriptovacím jazykům (Python, Perl, Tcl, Visual Basic).

V JSA programujeme za pomocí instrukcí. Tento jazyk ulehčil programátorovi práci, protože nemusel psát ve strojovém kódu, ale psal za pomocí mnemotechnickch symbolů, které se lépe zapamatovaly. Výhodou je používání symbolů oproti obyčejným číslům, používají se symboly třeba pro adresy, které se při překladu nahradí skutečnou adresou. Každý procesor má svůj odlišný JSA (některé se odlišují minimálně), my se budem zabývat JSA pro 8086 (x86). Jako překladač (compiler) JSA slouží assembler.

Kdysi se v JSA programovalo mnoho aplikací, mezi než patřily třeba i hry a hry zejména, protože tam hodně záleželo na rychlosti. Dneska už programovat v JSA hry nebo jakýkoliv větší projekt nemá cenu, je sice pravda, že by to bylo rychlejší, ale doba vývoje by se nesmírně protáhla i možná na několik desítek let a to nemluvím třeba o žádné přenostitelnosti nebo o tom, že by se pravděpodobně program s narůstajícím počtem řádek stal nečitelným a nedokončitelným. Dnešní hry se už programují přes grafické API jako je OpenGL nebo DirectX. Dneska se dá JSA využít jako vkládaného assembleru třeba do některých vysokoúrovňových programovacích jazyků pro urychlení některých funkcí a výpočtů. V některém z příštích článků si to ukážeme v praxi. Později si v kurzech možná ukážem vytvoření nějaké lehčí hry, ale to opravdu jen pro zábavu :).

Doporučené programové vybavení

Články budu psát pro dva programovací jazyky a to C a Pascal, kde budeme používat vkládaný assembler. U čtenářů předpokládám alespoň základní znalosti jednoho z výše uvedených jazyků. Občas se stane, že v některém z jazyků se bude samotný kod JSA trošku odlišovat.

Vkládaný assembler v C

Jako vývojový nástroj budu používat Visual C++ 6.0, který pro JSA používá Intel syntaxi jako všechny kompilátory od Microsoftu. V DevC++ a jemu podobných se používá AT&A (GCC), tyto syntaxe se v některých věcech liší. Pokud budete používat kompilér s AT&A syntaxí (MinGW,..) tak vám doporučuji přečíst si následujcí články:
http://www.strojsnv.sk/linux/programy/gnu-18.html
http://www.root.cz/clanky/kdyz-cecko-nestaci-gas/

Pokud byste chtěli free nástroj a přitom používat Intel syntaxi, můžu vám doporučit IDE Code:Blocks, které má komilér GCC (MingW/Linux GCC), ale můžete si stáhnout Visual C++ kompilér jako VC Toolkit 2003 tady:
http://msdn.microsoft.com/visualc/vctoolkit2003

S tímto nástrojem nemám zatím moc zkušeností, ale rozhodně vypadá víc "user friendly" jak DevC++. Co víc, tento nástroj můžete používat i pod linuxem, navíc je to open source, takže si můžete klidně stáhnout jeho zdrojáky.

Základní kód:


#include < stdio.h > // pro praci s konzoli

int main( )
{
  _asm  // intel syntaxe 
  {
    // tady budou instrukce JSA
  }
  return 0;
}

Projekt vytvoříte jako novou console aplikaci ( File - New - Projects - win32 console apl. - A simple apl. ).

Vkládaný assembler v Turbo Pascal

Jako vývojový nástroj budu používát starý dobrý Borland Turbo Pascal verze 7.0, který si můžete stáhnout zde. Zvažoval jsem použití freepascalu, který jede taky pod DOSem a má dobré IDE, boužel pro nás podporuje AT&A syntaxi.




Základní kód :


program JSA;
uses crt;

begin
  asm  // intel syntaxe
    // tady budou instrukce JSA
  end;
end.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v C++, Pascalu, JSA a zajímá se o 3D grafiku.

Nové články

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Reklama
Reklama
Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Obrázek ke článku Konference: Moderní informační systémy podporují automatizaci

Konference: Moderní informační systémy podporují automatizaci

Současná situace v šíření onemocnění Covid-19 klade na řadu firem nové nároky a mnohé z nich jsou nyní více než kdy jindy závislé na nejmodernějších informačních technologiích. Proto i v oblasti podnikových informačních systémů vidíme rostoucí důraz na automatizaci nebo na důslednou integraci. Také o těchto trendech se bude mluvit na konferenci Firemní informační systémy, která se koná 24.9.2020 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032023 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý