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

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

 

JSA (assembler pro PC) - Úvod

Google       Google       25. 8. 2005       18 332×

Ú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

Reklama
Reklama
Obrázek ke článku Blockchain & Bitcoin konference

Blockchain & Bitcoin konference

V pátek 19. 5. 2017 se v pražském konferenčním centru Andel’s konala Blockchain & Bitcoin konference. Řada odborníků a podnikatelů v oboru blockchainu a kryptoměn představila možnosti budoucího směřování tohoto oboru. Speakeři většinou rusky mluvící provenience prezentovali řešení svých firem založená na technologii blockchainu.

Obrázek ke článku Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Bezpečnostní tým Cisco Talos odhalil celkem 4 kampaně dosud neobjeveného malwaru, který dostal jméno KONNI. Ten se dokázal úspěšně maskovat od roku 2014. Zpočátku se malware zaměřoval pouze na krádeže citlivých dat. Za 3 roky se ale několikrát vyvinul, přičemž jeho současná verze umožňuje útočníkovi z infikovaného počítače nejenom krást data, ale i mapovat stisky na klávesnici, pořizovat screenshoty obrazovky či v zařízení spustit libovolný kód. Pro odvedení pozornosti oběti zasílali útočníci v příloze také obrázek, zprávu a výhružkách severokorejského režimu či kontakty na členy mezinárodních organizací.

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ý