V rámci samouky assembleru (díky za
SHALDAN ) jsem sesmolil takovou malou pitominu, uvítám konstruktivní kritiku, co se má nebo dá udělat jinak/lépe. Zkompilované s návodem a příkladem je to
tady, celý zdroják se mi sem nedaří pastnout :-(, asi vadí mix uvozovek, apostrofů a vran v definicích, ale bez těch se obejdete ;-)
.code
start:
invoke GetCommandLine
mov CommandLine, eax
invoke PathGetArgs,CommandLine
mov ParamsText, eax
mov esi, eax
lodsb
or al,al
jz ZobrazNapovedu
cmp al, 63
je ZobrazLepsiNapovedu
lodsb
cmp al, 32
jl ZobrazNapovedu
lodsb
cmp al, 32
jl ZobrazNapovedu
mov esi, ParamsText
add ParamsText, 2
mov eax,0
lodsb
sub al, 48
cmp al, 7
jl CislaOK
sub eax, 7h
cmp al, 7
jl @F
xor al, al
@@:
add eax, MB_ICONERROR
jmp NaplnPromenne
CislaOK:
or al,al
jz UkazMessageBox
add eax, MB_ICONQUESTION
mov ParamsCaption, offset MsgBoxCaption3
NaplnPromenne:
mov Vzhled, eax
jmp UkazMessageBox
ZobrazLepsiNapovedu:
mov ParamsText, offset MsgBoxCaption4
mov ParamsCaption, offset MsgBoxCaption0
jmp UkazMessageBox
ZobrazNapovedu:
mov ParamsText, offset MsgBoxCaption1
mov ParamsCaption, offset MsgBoxCaption0
UkazMessageBox:
invoke MessageBox, NULL, ParamsText, ParamsCaption, Vzhled
invoke ExitProcess, eax ;errorlevel = kód stisknutého tlačítka
end start