MASM
MASM Win32. .
.
MASM invoke, API - . call, TASM, . :
Invoke <>, <1>, <2>, <\3>invoke , :
PROTO STDCALL testproc:DWORD,:DWORD,:DWORD, testproc, 3 DWORD.
, ...
invoke testproc, 1, 2, 3, 4...masm , testproc 3 , 4. Masm , .. , ().
invoke ADDR OFFSET. , .
testproc PROTO STDCALL:DWORD,:DWORD,:DWORD.codetestproc proc param1:DWORD, param2:DWORD, param3:DWORD....rettestproc endp, testproc, . , invoke. , . .
testproc proc param1:DWORD, param2:DWORD, param3:DWORDLOCAL var1:DWORDLOCAL var2:BYTEmov ecx, param1mov var2, clmov edx, param2mov eax, param3mov var1, eaxadd edx, eaxmul eax, ecxmov ebx, var1.IF bl==var2xor eax, eax.ENDIF rettestproc endp. .
.
If - , TASM.
Repeat - , :
.REPEAT; .UNTIL eax==1repeat until, eax 1.
While - while repeat. , :
.WHILE eax==1; .ENDW.BREAK, .
.WHILE edx==1inc eax.IF eax==7.BREAK.ENDIF.ENDWeax=7, while .
continue repeat while.
:
.486.model flat, stdcall option casemap:none includelib.\masm32\lib\kernel32.lib includelib.\masm32\lib\user32.libMessageBoxA PROTO STDCALL:DWORD,:DWORD,:DWORD,:DWORDExitProcess PROTO STDCALL:DWORD.data ttl db '11111',0.codestart: invoke MessageBoxA,0,offset ttl,offset ttl,0 invoke ExitProcess,0end startTASM , MASM includelib.
include. , :
includelib.\masm32\lib\kernel32.lib includelib.\masm32\lib\user32.lib include.\masm32\include\kernel32.inc include.\masm32\include\user32.incA W . .
option . casemap . none, . , .