здрасьте ,товарищи ассемблерщики. мой ФАСМ не заставить прыгнуть на метку. сначала он не видел одну из меток (undefined symbol-пишет). после некоторых экспериментов (а именно : я передвинул ее поближе к тому месту где он выдал ошибку) он ее увидел, изчего я сделал вывод ,что он не видит меток на некотором расстоянии(дальше пятой - как я посчитал), но почему это происходит не понятно,ведь во многих примерах, где меток и побольше моего, все в порядке, да и в мануалах(я читаю русские) пишут чтоДОЛЖЕН видеть ВСЕ метки и до и после вызова(в общем случае): Код (Text): section '.code' code readable writeable executable start: push 0 call [GetModuleHandle] push 0 push DialogProc push HWND_DESKTOP push 1 push eax call [DialogBoxParam] cmp eax,0 je exit push 0 push caption push message push HWND_DESKTOP call [MessageBoxA] exit: push 0 call [ExitProcess] proc DialogProc hwnddlg,msg,wparam,lparam push ebx esi edi cmp [msg],WM_COMMAND je .wmcommand cmp [msg],WM_CLOSE je .wmclose ; вот тут говорит undefined symbol xor eax,eax jmp .finish .wmcommand: cmp [wparam],BN_CLICKED shl 16+IDCANCEL je .wmclose cmp [wparam],BN_CLICKED shl 16+IDOK jne .processed push 40h push buffer push 1 push [hwnddlg] call [GetDlgItemText] cmp eax,10h jne .processed mov ecx,eax .itsloop: test ecx,ecx je cip mov al,byte ptr buffer mov ah,byte ptr pass cmp al,ah inc [buffer] inc [pass] je .itsloop jmp .processed cip: cmp al,ah je congr pop edi esi ebx congr: push 0 push congrcap push congrtxt push 0 call [MessageBoxA] jmp .finish .wmclose: push 0 push [hwnddlg] call [EndDialog] .processed: mov eax,1 .finish: pop edi esi ebx ret endp прошу не смотреть на логику, я тут многое подвигал-пораздвигал. для меня главное понять изза чего он ругается. заранее спасибо
чтож поиграем в одепта черной магии и попытаемся предсказать что ругаецо и не видит .wmclose... напишете congr.wmclose. аналогично остальное
...........не понимаю почему он без точек не воспринимал метки. ща поставил точки в .congr и .cip и все заработало. спасибо фриман,всем спасибо