Почему не используется команда ENTER

Тема в разделе "WASM.WIN32", создана пользователем rpy3uH, 26 июл 2010.

  1. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    кто-нибудь знает почему не используется команда ENTER, а вместо неё используются push ebp/ mov ebp, esp ??
     
  2. maybeZ3N

    maybeZ3N New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2010
    Сообщения:
    80
    Вопрос в том, где не использутеся....
    Многие HLL, компиляторы её используют.

    И, моё мнение, потому же, почему не используют loop (хотя его тоже используют и не только недо-ассемблерщики)
     
  3. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    rpy3uH
    Leo когда-то писал, что она довльно медленная, 'push ebp/mov ebp', esp быстрее. А ее "парная" команда leave довольно часто используется gcc.
     
  4. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    скачал отсюда таблицу опкодов. ENTER выполняется как минимум за 17 тактов, инструкции push ebp; mov ebp, esp; sub esp, 4 выполняются за 3 такта
     
  5. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    И если внутри вашей процедуры есть вызов практически любой API-функции, а тем более операции с файлами (чтение-запись) или ожидание какого-то события, эти такты НИКАКОГО значения не имеют. Ни малейшего. Поэтому прежде чем оптимизировать, или гнуть пальцы против loop'а и заявлять о "недоасемблерщиках" (подразумевая свою немеряную крутизну, не иначе ;)), неплохо бы подумать - а есть ли смысл в оптимизации? Может один шут тут будет недуровая задержка, от вас не зависящая? Может, вы один шут будете крутиться в цикле, ожидая каких-то действий пользователя? В этом случае лишние 10-20-30 тактов никак не влияют.
     
  6. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    лучшая оптимизация подпрограммы - это ее инлайн (встраивание в место вызова).
    тогда вообще не будет прологов\эпилогов
     
  7. maybeZ3N

    maybeZ3N New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2010
    Сообщения:
    80
    Спасибо, конечно, что вы мне обьяснили когда надо делать оптимизацию, а то не в одной из книг или статей, которые я читал об этом не было ни слова :).

    Вы просто перевернули всю мою жизнь!

    Пальцы не гнул, сказал как есть может быть, моё пояснение поставит всё на место.
    Странно, что вы так смело начали говорить про то, где этот луп применялся, хотя я даже намёка не давал. Скажу сразу - ваша интуиция вас подвела.

    Луп может применяться, если это удобно, насколько я помню он применяется даже в фасме, и точно применяется в тулзе listing.


    Насчёт моего случая, это была декриптовка и использования лупа было глупо.... Было сразу видно, что этот кусок писал какой-то программер с минимальным знанием асма. Было видно даже по использованию регистров. Именно поэтому я сказал, что он недо-ассемблерщик. Мой друг учиться на программера, и его препеды считают использование лупа жизненно важно.

    P.S.
    В каком куске текста предыдущего поста я гнул пальцы. Разве я упоминал, что мой код исключительно крут???
     
  8. qwe8013

    qwe8013 New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    198
    FatMoon

    Вы это компилятору скажите.
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Нафига вообще придумали этот луп и прочее подобное, если оно только тормозит и захламляет систему команд?
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    потому что это cisc :)
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    n0name
    Некоторая догадка: раз сейчас внутренне процессоры всё равно risc, то возможно это как-то отражается на производительности некоторых команд.
     
  12. maybeZ3N

    maybeZ3N New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2010
    Сообщения:
    80
    потому, что гладиолус!

    Просто, видимо, существует набор комманд, на оптимизацию которых разрабам чихать хотелось. Лучше уж пускать компилятор оптимизирует.
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    maybeZ3N
    Что там оптимизировать-то? Интел похлеще навороты реализует, а тут несколько команд не оптимизировать. На это должны быть объективные причины. Если от этого ускоряется декодирование других команд, то понятно. Ещё не понятно со строковыми командами, тут вообще есть неслабый простор для оптимизации, а они также сливают.
     
  14. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    Эта тема что провокация что ли ?
    Тут же на васме не рас уже говорили: все это устаревшие команды в старину (и получается сейчас) призванные сократить размер кода сейчас поддерживаются только для совместимости.
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    FLASH300
    Официальный источник, со списком устаревших команд, пожалуйста в студию.
     
  16. Babyshamble

    Babyshamble New Member

    Публикаций:
    0
    Регистрация:
    2 май 2010
    Сообщения:
    67
    Посмотрите начало мбров от микрософта, там есть луп, что за бред ? Я юзаю луп ибо он короче в два раза.
     
  17. maybeZ3N

    maybeZ3N New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2010
    Сообщения:
    80
    Наверно, не так уж и легко.... Наверно, одни оптимизации плохо сочитаются с изменением в архитектуре. Потому как в одном из пней была оптимизация для строкового копирования, а в следующей модели этой оптимизации больше нет.
     
  18. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    В юзермоде(WIN32 раздел ?) не имеет значения пролог. Без разницы что замена на аналоги, что непосредственно инструкция.
     
  19. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    Booster
    Я хз на счет списка но есть.

    В общем интуиция подсказывает что их реализацию засунули куда-нить на обочину кристалла и налепили чтоб только работали упростив при этом реализацию дешифратора команд (сократив количество транзисторов и соответственно тепла в нужном месте и пр) увеличив производительность в целом.

    Вспоминаются дискуссии о скорости add x,1 | inc x и все из той-же оперы.

    Не удивлюсь если эти команды будут работать более оправданно если рассматривать древние процессоры с маленьким кэшем.

    ЗЫ=PS:Вообще-то мне ща некогда кому-то что то доказывать, есть желание ищите истину. Вдруг выясняется что это на самом деле происки инопланетного разума :)
     
  20. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Вобще то кроме оптимизации по скорости есть и оптимизация по размеру