Masm32 – direktivy (dokončení)
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Masm32 – direktivy (dokončení)Masm32 – direktivy (dokončení)

 

Masm32 – direktivy (dokončení)

Google       Google       26. 7. 2009       14 297×

Dnes si popíšeme zbytek nejpoužívanějších direktiv (docela nevděčné téma), tak abychom se mohli v dalších dílech vrhnout do samotných ukázek přímo v IDE WinAsm a Masm32. Trošku předběhneme a ukážeme si první program v Masm32, jak jinak než klasický MessageBox.

Co mám na srdci

No to sám nevím, ale určitě by něco našel nějaký Mudr. Srdcař, ale zase by nenašel to, co chci teď říct. Především bych chtěl poděkovat týpkovi s nickem MazeGen, který měl věcnou kritiku na minulý díl, za kterou jsem mu vděčný. No a na ostatní se strýček filuta zlobí, protože od vás očekává reakce v podobě komentářů, kde byste měli psát, co chcete vědět, co vám není jasné, jak si představujete, aby seriál pokračoval.

Minulý díl jsem trošku zeslonil, což je mnohem víc jak zkonit. Ale jak psal MazeGen, je málo informací o assembleru v češtině. Existuje však hodně fór a tutoriálů v angličtině. Vědomosti, které v těchto fórech a tutoriálech získáte jsou zase jen vědomosti od samotných lidí, kteří na to přišli metodou pokus/omyl a nebo se to zase někde dočetli. Já ostatně materiály pro tento seriál beru také ze svých vědomostí a praxe. Chci tím říct, že Microsoft sice v MSDN má kapitolu o MASM, ze které jsem čerpal co se týče direktiv, ale je tam svým způsobem skoro nic. To se také odrazilo v kvalitě minulého dílu. Zde si můžete stáhnout část MSDN pojednávající o MASM. Jedná se o HTML Help (.chm) soubor, který jsem našel na MasmForum. Sami uvidíte, že popis od samotného Microsoft nic moc.

A jedeme dál

Za těmi prvními třemi řádky z minulého dílu si stojím, protože je bez problému využijete ve výsledných kompilacích jako například .exe, .dll, .sys, .lib. Další direktivy jsou následující a budu se je tedy snažit popsat trošku líp než minule.

INCLUDE soubor
- říká kompilátoru, kde se nachází knihovna, která je textového formátu a v níž jsou potřebné definice či dokonce vlastní podprogramy, procedury.

INCLUDELIB soubor
- název souboru, který se přilinkuje k našemu programu a nebo se z něj bude čerpat informace pro sekci importů v PE souboru. Tento soubor má binární formát.

Abyste to pochopili, tak hned jdeme do praxe. Spusťte WinAsm Studio a pokud máte defaulní nastavení, objeví se před vámi následující okno.

V tomto okně Recent Project klikněte na tlačítko New Project. V záložce Empty Project klikněte na Standard EXE a potom na OK.

Náš první program

Hodně jsem předběhl, ale nedá se nic dělat. Po kliknutí na OK v New Project je před vámi již samotné IDE s otevřeným prázdným souborem, kam přepíšete následující zdrojový kód:


;
; Ukázkový program pro www.programujte.com
;

.586
.model flat, stdcall
option casemap :none

; Knihovny,
;~~~~~~~~~~~
include		\masm32\include\windows.inc
include		\masm32\include\user32.inc
include		\masm32\include\kernel32.inc
includelib	\masm32\lib\user32.lib
includelib	\masm32\lib\kernel32.lib

.data
Popis		db	'Můj první program',0	; text messagebox,
Zprava		db	'Ahoj....',0		; titulek messagebox,

.code
Start:
	invoke	MessageBox,NULL,offset Zprava,offset Popis,MB_OK
	invoke	ExitProcess,NULL
end		Start

Určitě se mezi vámi najdou podvodníci, kteří za pomoci Crtl+C a Ctrl+V rychle uvedený kód přepíší. Ale byl bych rád, abyste alespoň ty dva řádky s invoke napsali. Jde o to, abyste poznali jednu vychytávku, která sice není nic nového pod sluncem, ale ulehčí hodně práci. Ta vychytávka se jmenuje Intellisense.


Pokud máte kód přepsaný, tak ještě v cestě C:\Masm32\!Programy\ vytvořte adresář MyFirstProg. Proč, to popíšu později. Prostě v této cestě vytvořte uvedený adresář. Potom klikněte ve WinAsm Studiu v ToolBar na ikonu s modrými disketami alias Save Project. A nebo jděte přes menu File > Save Project. Objeví se okno Save Files, kde budou zvýrazněné v seznamu dva soubory. Pokud bude projekt obsahovat více souborů, budou v seznamu uvedené pouze ty, co byly změněny. Samozřejmě že můžete určit, které soubory se mají uložit výběrem jako například v průzkumníkovi. My v našem případě musíme uložit oba dva soubory, takže je necháme zvýrazněné a klikneme na YES.

Poté se začnou objevovat postupně dialogy pro uložení souboru s automaticky zvolenou příponou dle pořadí, v jakém byly zobrazeny v seznamu předchozího dialogu. Zvolte pro uložení náš vytvořený adresář a jméno MyFirstProg pro oba soubory (.asm, .wap). Teď se můžeme pustit do kompilace zdrojového kódu na výsledný .exe soubor. A to tak, že v ToolBar kliknete na ikonu Go All a nebo v menu zvolíte Make > Go All.

Pokud je vše v pořádku, tak se po provedení kompilace spustí náš program. Pokud se nespustí a nevznikla žádná chyba při kompilaci, tak zkuste kliknout v ToolBar na ikonu „zeleného trojúhelníku“ hned vedle Go All.

A to je dnes vše

Pro dnešek to stačí a doufám, že nebudete naštvaní, ale abych vše nenapsal do jednoho dílu, tak rozbor toho ukázkového programu si nechám na příště. Budu se moc divit, když se všem podaří zkompilovat tento ukázkový program. Proto očekávám případné dotazy. Hlavně na to, co jsem zde „záměrně“ neuvedl a možná uvedu někdy v budoucnu. Pro vás mám úkol v podobě nastudování si IDE WinAsm Studia. Buď metodou pokus/omyl, nebo si stáhněte manuál z WinAsm Homepage. Když nebudete něčemu v IDE WinAsm rozumět, tak pište do diskuze sem k tomuto dílu a já pak buď rovnou odpovím, nebo udělám speciální díl jen o WinAsm Studiu. Chci, abyste se naučili IDE WinAsm ovládat částečně sami, protože kvůli screenshotům mi pak nezbývá na text a nerad bych zde vytvářel kilometrové nudle.

Zde si můžete stáhnout dnešní ukázkový program.

×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 Assembleru, resp. v MASM32.

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý