Сборный / Говнокод #453 Ссылка на оригинал

0

  1. 1
  2. 2
mov ebx, eax
mov eax, ebx

Такое борландовский кодогенератор иногда выдаёт

Запостил: guest guest, (Updated )

Комментарии (14) RSS

  • 90%, что это выравнивание кода. Такое иногда бывает перед адресами, куда есть jmp/jcc-ссылки. Что-то там в проце быстрее работает, когда адрес выровнен.
    Мелкомягкий компилятор часто дает
    mov reg,reg
    lea reg,[reg+0]
    и т.п.
    Ответить
  • Неа, равняет он мусором если вне выполняемого или nop ами в выполняемом. Перехода на вторую инструкцию здесь нет. Что это - загадка.
    Ответить
  • Не загадка.
    Это a = b; c = a; или типа того. У него оптимизатор не в силах понять что значение только что положено в регистр из аккумулятора (eax) и для следующей инструкции класть его туда не надо.
    Капча 45768 😉
    Ответить
  • не только борландовский. gcc без оптимизации тоже радовал меня такими штукми
    Ответить
  • temple:
    Не удивлюсь, если это правда. Бугланд еще не то могет... Выравнивает он не так, да и то только начало функций. Это евойный "оптимизатор" о содержимом регистра "забыл". Бывает...
    Ответить
  • мелкомягкий и гнусный компилеры такое тоже могут клепать
    общее заболевание....
    Ответить
  • Ну охуеть. Страйко разминусовал 8 говнокодов на асме, и ЭТО ВСЁ?
    Ответить
  • выравнивание регистров это вам не хухры мухры , человек бывает заикается , а почему вы думаете что проц не может заикатца , то что он матюкается это уже давно известно и доказанно
    Ответить
  • Ого, страйко разминусовал немного ассемблера
    Ответить
  • Егор продолжает разжимать мне ягодицы, но я их наоборот сжимаю.
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8