Прочитать байт с адреса инструкции EA (JMPF)

Тема в разделе "WASM.ASSEMBLER", создана пользователем abb, 16 ноя 2009.

  1. abb

    abb New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    11
    Hi, All,

    Извините, если вопрос чайниковский...

    Кто-нибудь, может пояснит мне, что конкретно делает инструкция EA (JMPF)? Конкретно непонятно, как найти тот адрес, на который она прыгает. Т.е. хочется прочитать байты начиная с этого адреса. С обычным JMP все понятно - бери у него 4 байта адреса и с них и читай. Но у JMPF присутствует еще и сегментный регистр. Как его использовать для чтения с результирующего адреса?

    Конкретный пример:

    Есть инструкция: JMPF 0033:75B63637

    Хочется сделать операцию типа такой:

    XXXX 0033 // нечто с сегментым регистром
    MOV EAX, 75B63637
    MOV AL, BYTE PTR [EAX]

    В результате в AL имеем байт из интересующего адреса.

    Вопрос - что нужно поставить вместо ХХХХ?

    -Спасибо.
     
  2. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Код (Text):
    1. mov ds,33
    jmp far sel:offset
    чтобы прочитать данные надо
    Код (Text):
    1. mov ds,sel
    2. mov eax,offset
    3. mov al,[eax]
    При этом никто не гарантирует что права на чтение этой памяти у тебя есть.
     
  3. abb

    abb New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2007
    Сообщения:
    11
    Спасибо! Попробуем...
    Ну это-то понятно. Выясним этот аспект экспериментально :)