Насчет far call

Тема в разделе "WASM.ASSEMBLER", создана пользователем devel, 31 мар 2006.

  1. devel

    devel New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2006
    Сообщения:
    9
    Всем привет.

    У меня такой вопрос:

    При far call в 32 разрядном режиме на скока уменьшается esp?
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    На 4, т.к. режим 32 разрядный.
     
  3. devel

    devel New Member

    Публикаций:
    0
    Регистрация:
    27 фев 2006
    Сообщения:
    9
    Ответ найден уменьшается на 8.

    не 4 т.к. вызов far(дальний)
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Под far call подразумевалось intersegment call. На стек кладётся CS, кроме EIP. Поэтому 8. Правильно.
     
  5. bers

    bers New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2005
    Сообщения:
    139
    Адрес:
    Russia
    Ребят, а вам не кажется, что сегментный регистр CS занимает 2 байта? Следовательно - 2+4=6.
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    bers



    В защищённом режиме значение CS дополняется нулями до 32 бит и запихивается в стек перед EIP.
     
  7. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    bers

    Если регистр 2 байтный, но используется внутри специфических команд (iret, far call, far jmp и т.д.), то всегда дополняется до 32 бит за счёт нулей. Делается это видно для кратности 4 esp и элементов в стеке. Так как это удобнее читается процессором, соответственно, быстрее.

    Нули дописаются слева, то есть cs - младшая часть двойного слова в стеке.
     
  8. bers

    bers New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2005
    Сообщения:
    139
    Адрес:
    Russia
    Понятно, учту на будущее.