"196156 - Bude-li důstojník přistižen, jak očichává sedlo rotopedu v dámské tělocvičně, bude propuštěn bez soudu." Určitě jste poznali, že se jedná o jednu z mnoha direktiv, které lze zaslechnout v serálu Red Dwarf. Ale my se dnes podíváme na jiné direktivy a doufám, že budou zajimavé i přesto, že nejsou tak vtipné jako v již zmíněném seriálu.
- Co to jsou direktivy
- První tři řádky programu
- Co bude příště
- Novinky
Co to jsou direktivy
Direktiva je vyhrazené slovo pro assembler (kompilátor). V popisu MSDN (část věnovaná MASM32) zahrnuje do direktiv i tzv. High Level Syntax. Dnes si tedy probereme ty nejzákladnější, které budeme v budoucnu používat, a já je nebudu dále vysvětlovat.
První tři řádky programu
Každý program v MASM32 (.EXE/.DLL) musí začínat třemi řádky, které přikazují kompilátoru, jak má vypadat výsledný kód. Jelikož se v tomto seriálu budeme zabývat programy pro Windows, musí každý program začínat takto:
.586
.model flat,stdcall
option casemap:none
.586
Direktiva se používá na nastavení instrukční sady procesoru 586. Povolené jsou také direktivy .286, .386, .486, .586 a .686. Znamená to tedy, že pokud použijete direktivu .486 a ve zdrojovém kódu se objeví instrukce, která se nachází pouze v instrukční sadě 586, budete na to kompilátorem upozorněni.
.model flat,stdcall
Definuje paměťový model ve zdrojovém kódu. Paměťový model může být jeden z následujících typů: TINY, SMALL, COMPACT, LARGE anebo FLAT. V našem případě přichází v úvahu pouze FLAT, protože jako jediný používá šířku segmentu 32 bitů. Zároveň generuje data a kód do jednoho segmentu. Sdtcall je typ jazyka; opět zde může být několik nastavení, a to C, BASIC, FORTRAN, PASCAL, SYSCALL. My však budeme používat stdcall.
option casemap:none
Tato direktiva kontroluje mapovaní znaků na velká písmena. Parametr za dvojtečkou může být ALL, NONE anebo PUBLIC. Standardní nastavení je NONE. Jen pro zajímavost dodám, že tyto parametry korespondují s volbami příkazového řádku kompilátoru, a to /Cu, /Cp, /Cx.
Co bude příště
Doufám, že vás dnešní díl zaujal, i když není tak mohutný, jako byl ten první, pilotní díl. Příště si popíšeme nejpoužívanější High Level Syntax, a pak se už budeme věnovat jednoduchým ukázkám ve WinAsm.
Novinky
WinAsm Studio - k dispozici je nová verze tohoto IDE rozhraní
The MASMForum - fórum s velkým zdrojem informací kolem programování v MASM. Zařadil jsem ho sem, protože si z tohoto fóra můžete stáhnout novou beta verzi MASM32. Přímý odkaz na thread je zde.