Masm32 - Direktivy
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Masm32 - DirektivyMasm32 - Direktivy

 

Masm32 - Direktivy

Google       Google       9. 3. 2006       13 133×

"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.

Reklama
Reklama
  • 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.

×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.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v Assembleru, resp. v MASM32.

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ý