максимальное кол-во префиксов (реально)

Тема в разделе "WASM.RESEARCH", создана пользователем Ra!N, 9 авг 2008.

  1. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    Привет, all.

    Официальные мануалы интела говорят, что максимум префиксов может быть 4 (не более 1-го из каждой группы). Но на практике я ставил до 14 префиксов и код работал (под отладчиком и без него, не важно). Потом залез в инет и нашел чтатью криса, он говорит что максимум - 15, т.к. максимум всей команды - 16.

    Вопрос:
    1. можно ли ставить 15 префиксов? у меня код не работает, но может на каком нибудь проце работает (у меня Celeron-Coppermine-128) - попробуйте у себя код типа 0x67 (15 раз) 0x40 (=inc eax), у кого сработает?
    2. максимальная длина команлды разве 16? мне всегда казалось что 15. (официальный мануал тоже говорит 15). Если 15 (т.е. крис не прав) - то на первый вопрос можно забить - 15 префиксов низя.
    3. (some offtop) зачем интел иногда врет и(ли) скрывает правду. не только здесь, но и вообще. Почему некоторых опкодов (типа `salc'=`setalc') нет в документации. Не понимаю зачем это скрывать...

    Заранее спасибо
     
  2. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    На P4 0x67 14 раз работает, если больше вылетает исключение(Illegal instruction, 0xC000001D).
     
  3. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    CrystalIC
    пасиб.

    походу разобрался: макс.длина = 15 (а не 16), т.е. префиксов 14 максимально в случае если остальная часть команды 1 байт.