Кресты / Говнокод #26041 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
case Type::Instruction:
        {
          if (o == "movzwl") return OpCode::movzwl;
          if (o == "movzbl") return OpCode::movzbl;
          if (o == "shrb") return OpCode::shrb;
          if (o == "shrl") return OpCode::shrl;
          if (o == "xorl") return OpCode::xorl;
          if (o == "andl") return OpCode::andl;
          if (o == "ret") return OpCode::ret;
          if (o == "movb") return OpCode::movb;
          if (o == "cmpb") return OpCode::cmpb;
          if (o == "movl") return OpCode::movl;
          if (o == "jmp") return OpCode::jmp;
          if (o == "testb") return OpCode::testb;
          if (o == "incl") return OpCode::incl;
          if (o == "sarl") return OpCode::sarl;
          if (o == "decl") return OpCode::decl;
          if (o == "jne") return OpCode::jne;
          if (o == "je") return OpCode::je;
          if (o == "js") return OpCode::js;
          if (o == "subl") return OpCode::subl;
          if (o == "subb") return OpCode::subb;
          if (o == "addl") return OpCode::addl;
          if (o == "addb") return OpCode::addb;
          if (o == "sall") return OpCode::sall;
          if (o == "orl") return OpCode::orl;
          if (o == "andb") return OpCode::andb;
          if (o == "orb") return OpCode::orb;
          if (o == "decb") return OpCode::decb;
          if (o == "incb") return OpCode::incb;
          if (o == "rep") return OpCode::rep;
          if (o == "notb") return OpCode::notb;
          if (o == "negb") return OpCode::negb;
          if (o == "sbbb") return OpCode::sbbb;
          if (o == "pushl") return OpCode::pushl;
          if (o == "retl") return OpCode::retl;
        }

Фрагмент транслятора из ассемблера в ассемблер.

https://github.com/lefticus/x86-to-6502

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

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

  • Ахахах, чувак не знает про std::map, но
    > requires a full C++14 compiler

    Какой багор )))
    Ответить
    • Хотел спросить, где там C++14, но уже нашёл:
      use of 'auto' in lambda parameter declaration only available with -std=c++14 or -std=gnu++14


      Только ради auto в параметрах лямбд и требуется C++14. Хотя тут автору известно, какого типа должен быть параметр:
      [ text ](auto &ins){ 
                    
                    ins.comment = text; 
                  }
      Если он следующей строкой пишет «ins.comment», значит, знает, что у параметра ins должно быть как минимум поле comment.
      Ответить
      • > Хотел спросить, где там C++14

        А надо было стараться вписаться в минимально возможную версию C++?
        Ответить
        • Никак нет. Но если есть вопрос «Где тут C++?», то почему бы не быть вопросу, где тут C++14.
          Ответить
      • А кстати, в std::map кокококой поиск? Двоичный? То есть каждый ключ находится в карте примерно за одинаковое время, так? А тут автор сам может отсортировать ключи, чтобы наиболее вероятные опрашивать в первую очередь и находить быстрее, а самые редкие ключи можно засунуть в самый конец.

        Всё так?
        Ответить
        • Search, removal, and insertion operations have logarithmic complexity. Maps are usually implemented as red-black trees.
          Ответить
          • Почем ты знаешь, что там в качестве ключа? Вдруг там шагизагиги?
            а, ты про именно этот кейс
            тогда ок
            Ответить
          • А я вот вижу, что тут кое-какая ценная инфа проебывается

            допустим, мы посчитали
            >o == "movzwl"
            и узнали, что movz совпадает, а wl -- нет

            а потом мы
            >o == "movzbl"
            и тут мы СНОВА проверяем "mov".

            Почему не сделать нормальный автомат чтобы 2 раза одно и тоже не считаьть?!
            Ответить
              • Да любое дерево учтет тащемто например, нет рази?
                Ответить
                  • Я ХЗ как у вам в плюсах мап реализован. Он берет хеш от строки, и кладет по нему в веткочки что-ли?

                    Тогда ты прав, не учтет.
                    Ответить
                      • А как этот оператор реализован для string: лексикографической сортировкой?
                        Все равно отстой конечно, нужно или автомат делать, либо правда префиксное.

                        Сложно всё. Не даром Сёма говорит, что алгоритмы знать не нужно
                        Ответить
                        • Пэхапэшники не знают, как в их языке устроен ассоциативный массив, и текут.
                          Ответить
                          • Есть мнение, что кроме крестоблядей про такие вещи вообще редко кто думает. Ах, всё это байтоёбство, зачем она? Надо веб-сайты делать!
                            Ответить
                            • Вот я уверен, что многие жабоёбы (вроде после крестовиков они наиболее смышленые) поклали бы это все в HashMap и успокоилось бы.

                              Чтоб извлечить цимес из того факта, что тут не просто какие-то случайные данные, а строки, надо всё таки быть чуть-чуть задротом.

                              Кстати, как правильно называется эта ситуация? Поиск по таблице?
                              Ответить
                              • Вот вы доебались до наколеночной программы, которая конвертит асм в асм, и где приведённый кусок кода наверняка не является узким местом. Говно только в дублировании строк и энумов.
                                Ответить
                                • конечно, говно.

                                  Обычно люди используют Flex или JFlex для генерации лексеров, нет разве?
                                  Ответить
  • Ассемлерный транслятор на плюсах, ну да, хотя это в мос 6502 oh shi~.
    Ответить
    • Это далеко не единственный транслятор из x86 в MOS 6502.

      Я не понимаю, зачем в 2016 году понадобился транслятор именно в этом направлении. На 6502 и его клонах собирали поделку Стива Возняка «Apple ][», советский «Агат» и приставку «Денди» (да, теперь я уже знаю, что это клон «NES», но в 1990-х у нас оригинальных «NES» не было).

      Я понимаю, зачем нужен транслятор из 6502 в x86: кто-нибудь может загореться желанием поиграть в старые игрушки. А наоборот? Сейчас живой 6502 найти реально?
      Ответить
      • Транслировать не нужно, тем более где исходники каждый раз брать? Мос6502 успешно эмулируют, те же 8-битки с NES/Atari на эмуляторах бегают аж бегом.
        Ответить
  • как самому купить авто из сша: примерная
    стоимость, процедура растаможки и тонкости эксплуатации

    Review my blog ... <a href="https://www.0564.ua/list/143686">автомобили с пробегом</a>
    Ответить
  • This text promotes poker as a socially satisfying sport of skill.

    As a substitute, click I discovered the optimum
    method is to affix a friend’s recreation and help them progress a while earlier than beginning your
    individual game. That is the game you want it offers nice worth and endless content to occupy your time.
    While indisputably impressed with the expertise,
    I want there was a storage system which will permit gamers to stash away useful weapon parts for
    a later time. Equally, the journal system still appears archaic, particularly with weapon fabrication making inventory home a helpful commodity.

    That technique, you’ll start with a more skilled Chuck who can carry extra gadgets, has additional nicely
    being, and is aware of a few combating moves.
    Like poker itself, buying cheaper shufflers might be one thing of a gamble in terms of quality.
    As far as poker devices and accessories go, chips needs to
    be first on your purchasing record, closely adopted by a quality desk.


    Also visit my blog ... <a href="http://Www.Zanele@silvia.woodw.O.r.t.H@oskj.jp/yybbs/yybbs/yybbs.cgi">mom porn</a>
    Ответить
  • The time and day have no affect on online poker at all; you can play at three
    a.m., 10 p.m. Meaning you do not need to gather all your buddies
    together, or look ahead to an area tournament; relatively you'll be able to play impulsively whenever you're feeling prefer it.
    Playing together with your buddies most probably entailed
    you and some buddies sitting round a table enjoying aimlessly with little plastic chips, click
    however taking part in poker on-line means that you would be able to play towards opponents from around the globe and from all kinds
    of different skill ranges; from rookie to seasoned poker veterans.
    Enjoying a match of poker together with your buddies is always a great method
    to occupy a number of hours (or several), but what
    do you do while you come into the realization that you're adequate to play with the big
    boys, and even for money? When you've got ever thought of how many alternative variations there
    are to poker, then you will come into the realization that there are a number of
    different ways to play.

    Feel free to surf to my website <a href="http://19wujian.com/home.php?mod=space&uid=37486&do=profile&from=space">porn site</a>
    Ответить
  • Какие предметы сдавать при
    поступлении в вуз, зависит от выбранного направления
    подготовки или специальности
    Ответить
    • Хурозвозу боисовскому питуху ответил
      Ответить
  • You continue to get the comfortable endings with each heroine,
    xxx giochi porno but the endings aren't really that comfortable due to all
    the damage that was performed throughout the course of the sport.
    You still get the comfortable endings with
    each heroine, however the endings aren't really that blissful due
    to all of the injury that was carried out throughout the course of the game.
    One of the mentioned joyful endings is a failed suicide attempt (though there is a lesson about the worth of life in there somewhere), and
    another one has Kita forcibly (kinda) ending up with
    his best pal's girlfriend. Every have their very own story to be advised, and while Touko is principally a lesson in emotion and kindness to Kita (once he realizes that he
    mustn't treat Touko like a sex toy), each story teaches him a special lesson, coupled with overly miserable conditions and information that there
    is a lot psychological healing left undone as the sport comes to an in depth.
    Ответить

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

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

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


    8