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

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

 

JSA (assembler pro PC) - Úvod

Google       Google       25. 8. 2005       18 021×

Ú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 Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý