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       17 837×

Ú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 RAD Studio a Windows Store

RAD Studio a Windows Store

RAD Studio je první vývojové prostředí se zabudovanou podporou balení aplikací typu Win32 a Win64 pro jejich umístění a šíření prostřednictvím Windows 10 Store.

Reklama
Reklama
Obrázek ke článku Testujte na 2 400+ Android a iOS zařízení

Testujte na 2 400+ Android a iOS zařízení

V dnešní době, kdy většina softwaru pro mobilní aplikace je tvořena a distribuována průběžně, mnohdy do celého světa je třeba zajistit také průběžnou automatizaci testování mobilního softwaru. V případě mobilních aplikací pro Android a iOS začíná být problém, jak testovat na obrovském množství kombinací HW variant, rozměrů, edic operačních systémů různých výrobců v různých částech světa na reálných zařízení. Simulátory a emulátory nejsou většinou to pravé. Pokud již testuji, jak si udělat vlastní beta distribuci opravdovým reálným testerům napříč platformami?

Obrázek ke článku Funkcie main vo Windows API

Funkcie main vo Windows API

V tretej časti seriálu o Windows API budeme hovoriť o funkčných prototypoch main. Funkčný prototyp je tvorený názvom funkcie a typom signatúry, pričom sa vynecháva telo funkcie. 

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ý