Здравствуйте, помощь нужна, WrittenCA proto WORD,WORD ReadingCA proto WORD,WORD .data mesaga byte "Enter: " ms byte 128 dup(?) .code start: push 7 push offset mesaga call WrittenCA push 8 push offset ms call ReadingCA push 8 push offset ms call WrittenCA push 0 call ExitProcess ReadingCA proc msgWORD, colWORD sub esp,8 push -0ah call GetStdHandle mov [ebp-4],eax push 0 push [ebp-8] push [ebp+12] push [ebp+8] push [ebp-4] call ReadConsoleA ret 8 ReadingCA endp WrittenCA proc msgWORD, colWORD sub esp,8 push -0bh call GetStdHandle mov [ebp-4],eax push 0 push [ebp-8] push [ebp+12] push [ebp+8] push [ebp-4] call WriteConsoleA ret 8 WrittenCA endp Делал по образцу из книги, вот эту процедуру WrittenCA. Хотел сделать еще и для ReadConsoleA вот только не получается. Данные ввожу, а в память не записывает(Просматривал с Olly). Можете объяснить и исправить, что не так? Спасибо!!!
Linkey В обеих подпрограммах (ReadingCA и WrittenCA) есть ошибка. Четвертый параметр ReadConsoleA/WriteConsoleA должен быть адрес, по которому будет записано количество введенных/выведенных символов. Ты передаешь число, которое хранится по адресу push [ebp-8]. Можно исправить так Код (Text): ... push 0 lea eax,[ebp-8] push eax push [ebp+12] push [ebp+8] push [ebp-4] call ReadConsoleA ... push 0 lea eax,[ebp-8] push eax push [ebp+12] push [ebp+8] push [ebp-4] call WriteConsoleA ...