pushf, pushfq и fasm

Тема в разделе "WASM.ASSEMBLER", создана пользователем t00x, 22 авг 2007.

  1. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    Код (Text):
    1. use64
    2. PUSHF
    3. PUSHFQ
    компилирую fasm'ом (1.67.22). в результате 0x9C 0x9C.
    ждал префикс 0x66 перед PUSHF. что не так?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    для 64: pushf == pushfq
    для 32: pushf == pushfd
     
  3. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    Vol. 2B 4-225

    по табличке получается, что не нужно писать 0x66, а по тексту, что нужно.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    попробуй pushfw. как уже сказали pushf это просто синоним pushfd (при 32 битах) и pushfq при 64х

    UPD: 'f' забыл)
     
  5. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    n0name
    Great
    спасибо.
    нашёл уже.

    P.S. удивило, что по pushf загоняет в стэк целый регистр флагов, а не младшие 16 битов.
    а в мануалах к AMD тоже самое?