Вопрос № 155550: Здравствуйте, уважаемые эксперты! Как в ручную посчитать следующую задачу: mov AH,-28 mov BL,7 1) add ax,bx ; AX=? ; CF, AF, PF, SF, ZF, OF - ? 2) mul BL ; AX=? 3...
Вопрос № 155554: Здравствуйте! У меня задача: дана прога, которая складывает два числа (написана на VB6) в откомпилированном виде. С помощью программы WinHEX сделать так, чтобы вместо сложения было вычитание.
Скажите, пожалуйста, как это можно сделать, есть ли ...
Вопрос № 155.550
Здравствуйте, уважаемые эксперты!
Как в ручную посчитать следующую задачу:
mov AH,-28 mov BL,7
1) add ax,bx ; AX=? ; CF, AF, PF, SF, ZF, OF - ?
2) mul BL ; AX=?
3) imul BL ; AX=?
4) cbw idiv BL ; AX=?
Задача происходит в четырёх разных вариантах. Для каждого варианта необходимо узнать содержание AX. И флаги состояния для первого. Только всё это надо сделать вручную.
;11101011b - 6 единиц(6 - чётн
ое число, чётное число делится без остатка на 2)
;PF=1 - 8 младших разрядов результата содержат чётное число единиц
;================================================================ ; ;0000000011101011b ; ;SF=0 - старший бит результата равен 0 ; ;================================================================ ; ;ZF=0 - результат ненулевой ; ;================================================================ ; ;OF=0 - в результате операции не происходит переноса
в старший знаковый бит результата ; ;================================================================
mov al,-28 mov bl,7 mul bl ;MULtiply - целочисленное умножение без знака
;после выполнения команды CF=?, OF=?, SF=?, ZF=?, AF=?, PF=?
nop
code ENDS
stk SEGMENT PARA STACK DB 200h DUP(?) stk ENDS
END
entry_point
Ответ отправил: Trulala (статус: 3-й класс)
Ответ отправлен: 26.12.2008, 03:34
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 239682 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 155.554
Здравствуйте! У меня задача: дана прога, которая складывает два числа (написана на VB6) в откомпилированном виде. С помощью программы WinHEX сделать так, чтобы вместо сложения было вычитание. Скажите, пожалуйста, как это можно сделать, есть ли какие-нибудь методы поиска ? По крайней мере, переименовавыть Caption (заголовок) у формы с помощью этой программы я уже научился, а вот как заменить сложение вычитанием не знаю, помогите, пожалуйста. Спасибо!
Отправлен: 23.12.2008, 23:11
Вопрос задал: AkaProc (статус: 4-й класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 8)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, AkaProc! Программы на vb6 характерны тем, что все операции выполняются подпрограммами, вызываемыми из DLL, в данном случае, из Msvbvm60.dll Поэтому надо менять вызов подпрограммы. Посмотрев таблицу экспорта Msvbvm60.dll, находим, что адрес функции __vbaVarSub отличается от __vbaVarAdd на 29h Итак, в Exe-файле нам надо поменять в 3 местах: 1) меняем 'Add' в имени __vbaVarAdd по адресам 1664h и 1d14h на 'Sub' 2) меняем байт 2Dh по адресу 1074h на 56h (добавляем 29h
до адреса вызова фукции в DLL) После всех этих манипуляций, в заголовке напишется "-1" Удачи!
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 26.12.2008, 03:18
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 239681 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Благодарю! Но только у меня возникла неясность: почему-то, когда я пытаюсь перейти на строку по указаному Вами адресу, он говорит, что такого адреса нет. У меня вообще адреса начинаются с 401000. Может, я что-то не так делаю ? Использую программу PE Explorer. Хотя... если честно, меня больше интересует то, как Вы догадались до того, где именно надо менять...
Вы имеете возможность оценить этот выпуск рассылки. Нам очень важно Ваше мнение!
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.