Вопрос № 51905: Привет All!
У меня вопрос по работе с нуль терминальными строками:
Я пишу консольное приложение которое читает строку из консоли в буфер который я переделил так :
….
hBuffer equ byte ptr [ebp-8Ch]
….
xor ebx,ebx
push ebx<b...Вопрос № 51907: Подскажи пожалуйста как будет в HEX виде выглядеть последовательность команд:
..
Вопрос № 51.905
Привет All!
У меня вопрос по работе с нуль терминальными строками:
Я пишу консольное приложение которое читает строку из консоли в буфер который я переделил так :
….
hBuffer equ byte ptr [ebp-8Ch]
….
xor ebx,ebx
push ebx
push nWrite
push nRead
push hBuffer
push hInput
call ReadConsole
где nWrite количество прочитанных байт. Так строка которая содержится в буфере не заканчивается нулём я пытаюсь его дописать в конце:
lea eax, hBuffer r
mov ecx, nWrite
_loop: inc eax
loopnz _loop
xor ebx,ebx
mov [eax],ebx
после этого пытаюсь передать указатель на, теперь уже, нуль терминальную строку в API функцию. Но функция возвращает ошибку :-( Соответственно вопрос в том как правильно преобразовать полученный буфер в нуль - терминальную строку?
В функцию ReadConsole четвёртым параметром передается указатель на переменную типа DWORD, т.е. должно быть что-то вроде
push addr nWrite
а дописать ноль можно так:
lea eax,hBuffer
add eax,nWrite
mov byte ptr [eax],0
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 12.08.2006, 00:58
Вопрос № 51.907
Подскажи пожалуйста как будет в HEX виде выглядеть последовательность команд: