Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите найти где ошибка =>

1.9K
27 сентября 2005 года
Nigger
71 / / 09.04.2005
код :
-------------------------------------------------
.....
pushad
xor edx,edx
mov edi,ReadSize
loop_1:
mov ah,byte ptr [pMemory+edx]
mov al,ah
shr ah,4
cmp ah,0Ah
jb below
add ah,37h
jmp j_
below: add ah,30h
j_:
and al,00001111b
cmp al,0Ah
jb below1
add al,37h
jmp j_inc
below1: add al,30h
j_inc:
mov word ptr [pMemoryOut][edx*2], ax
inc edx
cmp edx, edi
jbe loop_1
sal ReadSize,2
dec ReadSize

popad
invoke WriteFile,hNewFile,pMemoryOut,ReadSize,addr WriteSize,NULL
.
------------------------------------------------
Тут я пытаюсь обработать байт из памяти pMemory и записать его в pMemoryOut , затем в файл.
А он выдает ошибку и предлагает Microsoftу отчет послать :)
Ошибка точно на этом участке кода .
Возможно в строке : jbe loop_1
Если ее закоментировать ошибку не выдает, но работает, естественно, не так как надо .
252
28 сентября 2005 года
koderAlex
1.4K / / 07.09.2005
Ошибка в строке :
cmp edx, edi
в работе кода регистры никогда не совпадают - edx продолжает накручиваться со всеми вытекающими последствиями .
Проработай алгоритм получше или запиши попроще (компактный код - это хорошо , но не настолько же :) ) .
Попробуй регистры-указатели (edi,esi)по назначению использовать 8) :) , так код проще читать будет .))
1.9K
28 сентября 2005 года
Nigger
71 / / 09.04.2005
Цитата:
Originally posted by koderAlex
Ошибка в строке :
cmp edx, edi
в работе кода регистры никогда не совпадают - edx продолжает накручиваться со всеми вытекающими последствиями .



Заменяю cmp edx, edi на cmp edx,ReadSize -> все равно ошибка.
ReadSize - это количество байт, которое мне необходимо обработать ( размер буфера на который указывает pMemory), так что по идее edx и ReadSize когда-нить должно совпасть.
Здесь что-то другое :roll:

Кстати, такая адресация верна : mov word ptr [pMemoryOut][edx*2], ax ?

1.9K
28 сентября 2005 года
Nigger
71 / / 09.04.2005
А GlobalAlloc когда память выделяет, она ее непрерывно в памяти размещает или как-нить по кускам ?
И в Win32 вместо GlobalAlloc что используют ?
252
03 октября 2005 года
koderAlex
1.4K / / 07.09.2005
ты под отладчиком посмотри сначала , убедись )
12K
13 октября 2005 года
patriotLviv
10 / / 13.10.2005
Цитата:
Originally posted by Nigger
Заменяю cmp edx, edi на cmp edx,ReadSize -> все равно ошибка.
ReadSize - это количество байт, которое мне необходимо обработать ( размер буфера на который указывает pMemory), так что по идее edx и ReadSize когда-нить должно совпасть.
Здесь что-то другое :roll:

Кстати, такая адресация верна : mov word ptr [pMemoryOut][edx*2], ax ?




Неверна!!!
Тьі каким компилятором пользуешся? И куда ти хотел записать ах???

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог