![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 01.02.2008
Сообщений: 2
|
![]()
Извините за такой нубский вопрос:
Есть конструкция на асме: TEST DH,080h //сравниваем DH с 080h JE @MYPROG_0053F44B // прыгаем, если равно Я сделал так tmp:=copy(IntToHex(EDX,2),Length(In tToHex(EDX,2))-3,2); if StrToInt('$'+tmp) >= $80 но специалист сказал, что это изврат и посоветовал вот так if PByteArray(@EDX)^[2] >= $80 или if (Byte(EDX shr 8) >= $80) или if Word(EDX and $FFFF0000) >= $8000 но так не работает... (может только у меня ![]() Я ведь правильно понимаю: ![]()
DimitarSerg / IREC
reversing... |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> tmp:=copy(IntToHex(EDX,2),Length(In tToHex(EDX,2))-3,2);
это шо за паноптикум, какой ещё EDX на Паскале? Если вы умудрились загнать в 32-битную переменную с именем EDX значение регистра EDX, и далее хотите проверить, а не содержат ли биты с 8 по 15 значение, похожее на $80, то делайте, как велит сердце: Код:
Update: код ошибочный, см. ниже.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 25.08.2011 в 18:36. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 28.07.2009
Сообщений: 189
|
![]()
а почему просто не открыть
Код:
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com |
![]() |
![]() |
![]() |
#4 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
это не считая того что dh имеет размер 8-бит.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
Че вы путаете человека, у него там полубайты нарисованы (по 4 бита каждый), как я понял, так что всё ОК. И значение $80 легко влазит в 8 бит.
Но, кстати, я сам протупил, и сбили меня дубовые комменты к коду: Код:
Аналогичный код на Паскале (не придираясь к тому, что такое EDX и откуда оно взялось. Считаем, что там значение регистра EDX): Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#7 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
я лично вижу так )
![]()
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#9 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
![]()
Ну да, похоже и я протупил, согласен)
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
если это полубайты, то тогда верно.
но код напрямую к регистрам не имеет доступа(я сейчас не про асм вставки) то есть в итоге проще повторить код асм вставкой, или же переделать. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Содержимое регистров | maxwelldream | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 15.01.2011 09:28 |
использование swf картинок в делфи 7 | Pein95 | Общие вопросы Delphi | 1 | 03.12.2010 02:05 |
ИСПОЛЬЗОВАНИЕ АССЕМБЛЕРА В ДЕЛФИ! | IIIeneJI | Помощь студентам | 2 | 09.02.2010 17:12 |
много регистров | nntpaha | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 22.12.2007 19:01 |