Есть такой код:
MOV ESI,DWORD PTR DS:[EBX+31C]
MOV EDX,DWORD PTR DS:[ESI+218]
Потребовалось получить значение EDX для сравнения ее с нулем, используя одну команду:
CMP DWORD PTR DS:[EBX+534],0
Но в первом случае DS:[00229CC8]=00000000
а во втором DS:[00222ACC]=FFFFFFFF
Почему? Ведь 31C+218=534, почему адрес другой получается?
Примечание:
>>Не совсем понял вопрос - почему нельзя получить значение EDX напрямую?
Да, через смещение, содержащееся в EBX.
Сделал так:
CMP DWORD PTR DS:[EBX+7730],0
Работает, но не понятно почему...
Примечание:
Я вас запутал
Мне просто нужно значение EDX после первых двух приведенных операций)
Примечание:
>>"Ну, так и получите это значение:"
Потребовалось получить значение EDX для сравнения ее с нулем, используя одну команду, не более.
Проблему то я решил уже с получением значения, но так и не понял почему у меня это получается через EBX+7730, а не через EBX+534, хотя 31C+218=534...
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.