Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Assembler

Автор: akaGM
Дата сообщения: 19.03.2012 14:46
A1exSun
а что там в тексте есть-то? нули? или 0"текст, который там есть"?
попробуй вывести тест без ввода с клавы:

text db 81, 'пример 1 3 5 пример', $'
Автор: A1exSun
Дата сообщения: 19.03.2012 15:06
akaGM
Да все уже ок. В завершающем $ была ошибка, хотя так и не понял почему.
Я думал должно выводится введенный текст + остальные 0, а выводились все 0 или хз. Пустота, пробелы.
Автор: akaGM
Дата сообщения: 19.03.2012 16:55
A1exSun
интересно, а какое граф. представление нуля ? :)


Цитата:
В завершающем $ была ошибка
понял, ты его не в той раскладке набрал :)
Автор: delover
Дата сообщения: 19.03.2012 18:50
akaGM
Что будет при

Код:
inc byte ptr es:[di][bp]
Автор: akaGM
Дата сообщения: 19.03.2012 19:24
delover
при чём тут я?
ты меня во всех трейдах преследуешь...
Автор: A1exSun
Дата сообщения: 19.03.2012 21:07
Ребят, а чего здесь не так:

Код: sort proc
do_loop_top:
mov si, 0 ; i
mov di, 0 ; i+1
inc di
mov dh, 0 ; exchanges
dec dl ; n
for_loop:
mov ch, 0
mov cl, dl
for_loop_top:
jcxz for_loop_done
mov al, [bx+si]
cmp al, [bx+di]
jle nexti
mov ah, [bx+di]
mov [bx+di], al
mov [bx+si], ah
inc dh ; exchanges++
nexti:
inc si
inc di
dec cx
jmp for_loop_top
for_loop_done:
cmp dh, 0
jg do_loop_top
ret
sort endp
Автор: bomzzz
Дата сообщения: 19.03.2012 21:13
но все хоть по порядку? кирилица особенно
Автор: A1exSun
Дата сообщения: 19.03.2012 21:15
bomzzz
Да, все правильно. Пофиг, но интересно. Алгоритм взят по ссылке что я писал выше.
Автор: Abs62
Дата сообщения: 19.03.2012 21:21
A1exSun

Цитата:
Почему после сортировки первой оказывается кириллица, потом цифры и латиница?

А потому, что работаешь с char, а не с unsigned char. Неужто в C с такими нюансами не сталкивался?
Автор: A1exSun
Дата сообщения: 19.03.2012 21:30
Abs62
Как работать с unsigned char на ассемблере?
Автор: Abs62
Дата сообщения: 19.03.2012 21:35
A1exSun
Применять беззнаковое сравнение вместо знакового. jbe вместо jle и т.д. Как минимум.
Автор: A1exSun
Дата сообщения: 19.03.2012 22:26
Abs62
Спасибо
Автор: bomzzz
Дата сообщения: 21.03.2012 13:10
люди а что неправильно? ошибка 87 неправильный параметр

Цитата:
    invoke CreateProcess,NULL,addr MyProg,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL, addr StartupInfo, addr hProcess
    invoke SetWindowsHookEx,WH_CALLWNDPROC,addr HookProc,NULL,hProcess.dwThreadId
    mov hHook, eax


Добавлено:
понял уже - это совершенно другой ид треда
Автор: bomzzz
Дата сообщения: 21.03.2012 16:10
посоветуй те такую фигню
мне надо расширенные стили окна отключить в винде. может это можно вообще централизовано сделать. а если нельзя то какой лучше путь избрать - хукнуть конкретную программу и ловить ее окна, или спласингом всю процедуру
я пока в самом начале и конца не вижу куда мне все заведет.
Автор: A1exSun
Дата сообщения: 21.03.2012 19:49
Глупый вопрос - как 2012 поделить на 100?

Код: mov ax, 2012
mov bh, 100
div bh
Автор: cp58
Дата сообщения: 21.03.2012 20:11
bomzzz
Надежнее через inject перехватывать CreateWindowEx, а дальше уже заменять extended тип на нужный.
A1exSun

Код: xor dx,dx
Автор: A1exSun
Дата сообщения: 21.03.2012 20:29
cp58
Пробовал - не помогло
На 10 делиться, на 100 - нет.
На BH делит, на BL нет Оо
Понял в чем ошибка. В BL изменилось значение...
Автор: bomzzz
Дата сообщения: 21.03.2012 20:53

Цитата:
Надежнее через inject перехватывать CreateWindowEx, а дальше уже заменять extended тип на нужный.

была и такая мысля - минусы это перехватит все окна, а не только программ которые надо. а как сбрасывать расширенные стили это какая то часть битов флага?
Автор: cp58
Дата сообщения: 21.03.2012 21:05
bomzzz
Это первый параметр в функции CreateWindowEx - dwExStyle, можно попробовать передать 0 или вызвать CreateWindow, параметры у них идентичные(за отсутствием dwExStyle).
Автор: bomzzz
Дата сообщения: 21.03.2012 21:54
cp58
сенкс
Автор: A1exSun
Дата сообщения: 21.03.2012 21:54
Как сравнять AX с элементом массива mas, номер которого в DX?
cmp ax, mas+dx не катит


Код: mov si, dx
cmp al, byte ptr [mas+dx]
Автор: bomzzz
Дата сообщения: 21.03.2012 22:21
не так низя. можно только целочисленный параметр прибавить. можно командой lea адрес вычилить
Автор: A1exSun
Дата сообщения: 21.03.2012 22:34
bomzzz
cmp al, byte ptr [mas+si] работает. Не то написал выше...
Автор: bomzzz
Дата сообщения: 21.03.2012 22:39
а может быть регистры в этом случае разные
Автор: bomzzz
Дата сообщения: 22.03.2012 11:54
люди, чета не соображу. если хук удаленный, его надо пихать в дллку. вот я запускаю програмку, она грузит дллку, получает ее адрес в памяти, адрес хук функции в ней, устанавливает хук на окно другого приложения и.... дальше что делать, приложение закрыть? тогда наверно дллка выгрузится, но она вроде должна отразится в память того процесса, а как хук снимать когда то окно закроется - он автоматом скинется с закрытием того приложения?

*если дллку не делать ошибка возникает при вызове хука

Добавлено:
может дллку надо грузить в контексте того процесса который хукаецтся?
Автор: delover
Дата сообщения: 22.03.2012 19:02
bomzzz
Дэлэлэлку мохно не ледать - хукается, но при вводе пароля затребует права админа.
Автор: bomzzz
Дата сообщения: 22.03.2012 19:13
ну хукается, только каждый раз при перехвате ошибка выскакивает. я с дллкой уже сделал все отлично работает. правда того чего хотел не смог добится
Автор: delover
Дата сообщения: 22.03.2012 19:39
bomzzz Хотеть не вредно главное конкретно хотеть чтоб другие поняли.
Автор: bomzzz
Дата сообщения: 22.03.2012 19:47
мне надо чтоб у приложения вместо диалогового окна SHBrowseForFolder с флагом BIF_USENEWUI открывалось диалоговое окно с флагом BIF_RETURNONLYFSDIRS.



сейчас я на стадии такой - сделал дллку, хукнул приложение, и когда оно вызывает это диалоговое окно, я вывожу свое с нужным флагом, а теперь пытаюсь обмануть апи функцию чтоб возвращаемое значение ей подсунуть из моего. кручусь вообщем в потоке сообщений
Автор: A1exSun
Дата сообщения: 22.03.2012 22:51

Код: search:
repe cmpsb
je not_edit
mov str1[bx], 'x'
mov str1[bx], 'x'
not_edit:
inc bx
loop search

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

Предыдущая тема: .NET GUI компоненты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.