Привет! Всем! вот мой исходник format PE CONSOLE entry start include 'c:\fasm\include\win32a.inc' section '.data' data readable writable SIZE_PUTH DD 0 DESK DD 0 COMMAND_STRING DD 0 SIZE_OUT DD 0 STRING_FILE DD 0 CONSOLE_WRITE EQU -11 CONSOLE_READ EQU -10 CONSOLE_WRITE_ DD 0 CONSOLE_READ_ DD 0 HANDLE DD 0 PUTH DB 260 DUP (0) BUF DB 4096 DUP (0) section '.code' code readable executable start: invoke GetStdHandle, CONSOLE_WRITE MOV [CONSOLE_WRITE_],EAX invoke GetStdHandle, CONSOLE_READ MOV [CONSOLE_READ_],EAX invoke GetCommandLine MOV [COMMAND_STRING],EAX MOV ESI,[COMMAND_STRING] MOV EDI,PUTH CICL: MOV AL,[ESI] CMP AL,20h JNE UKAZ MOV [STRING_FILE],ESI UKAZ: CMP AL,0 JE TEST_NULL MOV [EDI],AL INC ESI INC EDI INC [SIZE_PUTH] JMP CICL TEST_NULL: MOV [EDI],AL INC [SIZE_PUTH] invoke WriteConsole, [CONSOLE_WRITE_], PUTH, [SIZE_PUTH], [SIZE_OUT], 0 mov eax,[SIZE_PUTH] mov eax,[SIZE_OUT] exit: invoke ExitProcess, 0 section '.idata' import data readable writeable library kernel32,'KERNEL32.DLL' include 'c:\fasm\include\api\kernel32.inc' под OllyDBG после функции WriteConsole появляется ошибка Error invalid Acess 0ch но все работает, подскажите почему
ну тогда без квадратных скобок - ведь нужен адрес переменной для хранения возвращаемого размера, а не сама переменная
вот именно поэтому надо сидеть в масме - там все четко и прямолинейно. А фасм для тех, кто любит ломать мозг.
наоборот В фасме всё просто и понятно и не надо думать то ли addr то ли offset то ли вообще ничего не ставить.
а чего ж ТС запутался? А вот в масме указал словами, что это адрес, и голова не болит. А впрочем, это уже холивар и никакого отношения к тебе он не имеет