fordítóprogram MASM
A fordító MASM
Minden korábbi leckéket, beszéltem a fordítóprogram TASM, mert ez egy szabványos és nenavorochenny. De az egyre népszerűbb fordító MASM, akkor jött létre kifejezetten írásban programok assembler Win32. Ebben vannak a makrók és a speciális irányelvek egyszerűsítése programozás.
Funkciót.
A legfőbb előnye ennek a MASM makró meghívási, ez lehetővé teszi, hogy hívja az API függvények a szokásos ellenőrzése számú és típusú paramétereket. Ez majdnem ugyanaz a hívás, a TASM, de ez a makró ellenőrzi a paraméterek számát és típusát. Így a függvény neve:
Indítsunk <функция>, <параметр1>, <параметр2>, <параметр3>
Ahhoz, hogy a meghívási hívni egy eljárást, meg kell határoznia a prototípus:
PROTO STDCALL testproc: DWORD. DWORD. DWORD
Ez az irányelv kijelenti nevezett eljárás testproc, ami történik 3 paraméter nagyságú DWORD.
Most, ha erre a célra.
hivatkozhat testproc, 1, 2, 3, 4
MASM kapsz egy hibaüzenetet, mert testproc eljárás tart 3 paraméter helyett 4 MASM írjon ellenőrzése, azaz Ellenőrzi, hogy a paraméterek megfelelő típusú (méret).
testproc PROTO STDCALL: DWORD. DWORD. DWORD
.kód
testproc proc param1: DWORD, param2: DWORD, param3: DWORD
..........
áztat
testproc endp
Ez létrehoz egy eljárást, úgynevezett testproc, három paramétert. A prototípus használják, hivatkozhat. Minden paraméter lehet használni az eljárási kódex, akkor automatikusan azt kivonat a verem. Emellett a helyi változókat lehet használni eljárásokat.
testproc proc param1: DWORD, param2: DWORD, param3: DWORD
HELYI var1: DWORD
HELYI var2: BYTE
mov ecx, param1
mov var2, cl
mov EDX param2
mov eax, param3
mov var1, eax
add EDX, eax
mul eax, ecx
mov ebx, var1
.HA bl == var2
xor eax, eax
.ENDIF
áztat
testproc endp
Nem tudja használni ezeket a változókat az eljáráson kívül. Tárolják őket egy halom és eltávolítjuk, amikor visszatér az eljárást.
Tervezés összehasonlítás és ismételje meg.
ha
Ezen építési, beszéltem 10 óra. Ugyanaz a szintaxis a TASM.
ismétlés
Ez a kialakítás magában hordozza a mondat, amíg a feltétel nem igaz:
REPEAT
; kódot itt
.IG eax == 1
Ez a kialakítás következik a kód ismétlése között, és amíg, amíg EAX értéke 1.
míg
A design a inverzió közben ismétlődő design. Lefuttatja a blokk, amíg a feltétel igaz:
MÍG eax == 1
; kódot itt
.ENDW
Használhatja lehetőségre.BREAK irányelv megtörni a ciklust, és kijutni.
MÍG EDX == 1
inc eax
.HA eax == 7
.BREAK
.ENDIF
.ENDW
Ha EAX = 7, miközben a ciklus megszakad.
Irányelv továbbra ugrik a kód ellenőrzi a hurok feltétel a tervek ismétlés és while.Teper első programmal az alábbiak szerint módosul:
486
.modell lakás, stdcall
opció casemap: nincs
includelib. \ MASM32 \ lib \ kernel32.lib
includelib. \ MASM32 \ lib \ user32.lib
MessageBoxA PROTO STDCALL: DWORD. DWORD. DWORD. DWORD
ExitProcess PROTO STDCALL: DWORD
adat
ttl dB '11111', 0
.kód
kezdet:
hivatkozhat MessageBoxA 0, offset ttl, ofszet ttl, 0
invoke ExitProcess, 0
end Start
ML [/ opciók] filelist [/ link linkoptions]
összeszerelni összekapcsolása nélkül
Alapvetően, ha ezt a lehetőséget használja, mint akkor egy külső kapcsoló (pl link.exe) összekapcsolni a fájlokat.
létrehoz egy COFF tárgy fájlformátum
Ez létrehoz egy fájlformátum a linker microsoft.
Az objektum neve fájl
Ezt fel lehet használni, ha szeretné, hogy a kimeneti fájl egy másik nevet, nem olyan, mint az eredeti fájlt.
Használat felhívja Pascal, C, vagy Stdcall
Válassza ki a kívánt hívások típusát, az eljárásokat.
Add szimbolikus debug információk
Állítsa be ezt az opciót, ha szeretné használni a debugger.
Állítsa be az include path
Adja meg az elérési útvonalra
LINK [paraméterek] [fájlok] [@commandfile]
hibakeresés
Ez a hibakeresési információkat. Használja ezt az opciót, ha azt szeretné, hogy használja a debugger.
hibakeresés Típus: codeview / coff
Kiválasztja a kimeneti hibakereső adat formátumban. Attól függ, hogy debugger. Softice és Visual C ++ hibakereső így mind fogantyú CV (codeview)
DEF fájlt
Megadja a fájl (.def). Használt a dll, exportált függvények.
DLL
A kimeneti DLL fájl helyett EXE.
Library path
Meghatározza a könyvtár elérési útját fájlok (* .lib).
Megállapítja az utat inc-fájlok
Ez meghatározza az elérési utat inc-fájlok alapértelmezés szerint.
Out: fájlnév
Lehet változtatni a kimeneti fájl nevét.
alrendszer
Kiválasztja az operációs rendszer, amely a program futtatására: NATIVE | WINDOWS | Konzol | WindowsCE | POSIX
Telepítettem MASM mappában d: \ MASM \ MASM32, a mappában d: \ MASM mind szövegét a programok * .asm. Egy összeállítás Csináltam egy bat fájlt, ami lefordítja current.asm file:
; ====== [CUT ITT] =====
d: \ MASM \ MASM32 \ bin \ ml.exe / c / coff current.asm
d: \ MASM \ MASM32 \ bin \ link.exe / alrendszer: windows current.obj
szünet
; ======= [CUT ITT] ========
Ennek eredményeként, az indulás után egy fájl a mappában d: \ MASM current.exe készen áll lefordítani a programot.
Ez a vége ennek a leckét. Ebben a leckében meséltem neki makrosoftsky fordító MASM. A következő leckében fogjuk írni az első ablak a kérelem szerelő.