1. Assembler / Говнокод #24375

    0

    1. 1
    2. 2
    add    bp, 4 ; 83C504
    lea    bp, [bp + 4] ; 8D6E04

    А они ещё говорят, что первого байта для всех КОПов не хватает, и ввели дополнительный.

    Запостил: 666_N33D135, 11 Июня 2018

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

    • #хуита86
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Так получаиса что add нинужен. И команда lea что_то_там, immediate (= mov).

        ЗЫ. lea трогает флаг cf?
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • Сейчас проверил (хвала мокросовту, что на виндах до сих пор есть досовский debug), флаг cf точно не трогает.
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • > push/pop
                Нашел сравнение, lea может работать как add (за исключением флагов), а push/pop кроме указателя стека какают в память/регистры.
                Ответить
            • > на виндах до сих пор есть досовский debug
              Зачем он там?
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • Виндуосовский дебагер ставится с SDK, студией, или отдельно.

                  Называется он dbghlp.dll и имеет хуеву кучу фронтэндов, самый пополярный из которых -- windbg.

                  А еще есть дебагер, встроенный в студию.
                  Ответить
                  • > Виндуосовский дебагер ставится отдельно
                    И правильно, простому юзеру он нахуй не сдался, а досовский debug уж тем более, я вообще не понимаю, нахуя он столько лет поставлялся вместе с виндой. Да и вряд ли кто-то сейчас отлаживает программы глядя в ассемблерный листинг.
                    Ответить
                    • что, ужель и с десяткой поставляется?
                      Я 32хбитный винд лет пять не видел -- проверить негде

                      В XP он точно был, как был и edit.com кажется, потому что это часть окружения ms-dos которая винда должна была эмулироватть
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                        • показать все, что скрытоvanished
                          Ответить
                        • Когда я учился программировать на асме -- большинство программ было под dos. Я учился на masm, писал в edit.com и дебажился в debug.com:)
                          Ответить
                          • > debug.com
                            Он ехешник.

                            У нас использовали:
                            текстовый редактор -- какой хошь (я юзал нотепад++);
                            ассемблер -- tasm;
                            линкер -- tlink;
                            дебагер -- turbo debuger.

                            Для винды я учил асм сам.
                            Ответить
                            • Microsoft Windows (only in 32bit) which runs the program debug.exe (or DEBUG.COM in older versions of DOS).

                              ХЗ зачем его перелинковали, может чтобы впиндюрить туда PE.

                              >>нотепад++
                              когда я учил ассемблер не было никакого нотпад++ и editplus тоже не было: у меня были две IDE: TurboCшная и edit.com;)
                              Ответить
                      • > В XP он точно был
                        И в семёрке тоже был, а вот выше -- незнаю, не проверял. А в 64-битных 16-битные проги вроде работают.
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • >> 16-битные защищённого режима
                            Я не уверен что сегмент кода такого типа будет работать в long mode, но тут это не очень важно потому что debug.com не использовал защищенный режим.

                            Грубо говоря это не 286 а 8088 приложение)
                            Ответить
                            • > не 286 а 8088 приложение
                              Не 8086?
                              Ответить
                              • Хехе, первый IBM PC был оснащен процессором 8088 коий являл собой кастрированный вариант 8086:

                                8086 имел 16 ножек на шине данных, а 8088 имел их 8.
                                Таким образом в память за один раз читался один байт.

                                В следующей модели уже использовался 80286 в котором дороже стало 16, и читаться стало два байта.

                                С этим связан традиционный для интелов "плевок в вечность"
                                На 8088 не обязательно было выравнивать обращение к памяти: читался-то все равно один байт,
                                а вот в 286 стало нужно потому что читался всегда четный, например:

                                0 и 1
                                2 и 3

                                итд. Так что если считать WORD (два байта) по адресу 1, то получится ДВА чтения, половина из которых будет выкинута.

                                В других процессорах за такое чтение выдавали exception, но в 286 просто было временное пенальти, потому что был уже код под 8088 который срать хотел на выравнивания.

                                Ну а теперь префетчер читает данные из кеша, кеш читает линейками из памяти, и все это уже не так важно
                                Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • А что смешного?
                        До сих пор долбоёбы есть у которых 16ти битные программы для реального режима, написанные 25 лет назад.

                        Их обычно в DosBox гоняют
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • показать все, что скрытоvanished
                            Ответить
                          • Разумеется, будет.

                            DosBox это не V86 приложение а честный эмулятор PC. Иначе бы старые игрушки плохо работали.
                            Ответить
                          • Если бы досбокс не эмулировал полностью ось, на нём бы не работали игры с дос расширителями. Сука, до сих пор нету порта блада на вин32! Одна из самых сложных игр имхо - в любой момент можно было сдохнуть из-за какой-то хуйни или бага.
                            Ответить
                            • >>Одна из самых сложных игр
                              В бладе было сохранение, так что это не самая сложная игра.
                              Самые сложные это аркады на приставках образца 90х Mario2 (японский), Contra итд
                              Ответить
                              • Одна из самых сложных игр в которые я играл.
                                Ответить
                              • >Самые сложные это аркады на приставках образца 90х Mario2 (японский), Contra итд

                                Да. Battletoads самый сложный.

                                >Mario2 (японский)
                                Если это то о чём я думаю, то это пиздец.
                                Ответить
                                • > Battletoads самый сложный.
                                  Да ладно, их можно пройти. Для меня там самый пиздец -- ёбаная крыса-террорист, которую надо обогнать.
                                  Ответить
                                  • Контру я проходил и Double Dragon тоже.

                                    >ёбаная крыса-террорист, которую надо обогнать

                                    Это где? Когда на мотоциклах
                                    Или это:
                                    https://youtu.be/kW7KBl7zSE0?t=2712

                                    Я там постоянно факапил когда подымаешься по такой змее вверх. И крыса тоже, но до неё очень сложно дойти было.
                                    Ответить
                                    • > Это там где на мотоциклах на втором левеле?
                                      Не, я в просто battletoads задротил, без double dragon.
                                      Ответить
                                      • >Не, я в просто battletoads задротил
                                        comment updated

                                        http://govnokod.ru/24375#comment417458
                                        Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • Так это отнюдь не самое сложное.

                                        Там потом надо крысу отпиздить. Потом устроить ББПЕ паре шлюх с плётками, хуйнуть чела с пулеметом, расхуярить космокорабль на маленькой пиздюрке.

                                        И это будет только середина игры.

                                        И там баг ещё такой, очень доставучий. Когда ползёшь к рубильнику, а вокруг тебя крутится электричество. Вот иногда игра глючила, чуть-чуть смещала персонажа и потом никак нельзя было слезть с той трубы.
                                        Ответить
                                        • А в Contra примерно шесть миллионов врагов и у тебя 3 жизни
                                          Ответить
                              • >на приставках образца 90х Mario2 (японский)

                                https://www.youtube.com/watch?v=in6RZzdGki8

                                Но это специально созданный каким-то психом левел, который можно пройти только чисто на багах марио.

                                А из тех картриджей что у меня были однозначно Battletoads. Причём &DD мне таки удалось пройти.

                                А тот где только жабы — он запредельно блядь сложный.
                                Ответить
                                • Япониский сложнее: https://youtu.be/5apu4ML9Wto

                                  Mario вышла на NES (и как там она в японии называлась -- фамиком вроде). Потом японцы сделали продолжение, но в Европу и США продавать не стали потому что слишком сложно видимо:)

                                  В США на NES совсем другой Mario 2, который в Японии называлася doku doku panic, только в него перенесли персонажей из Mаrio: можно играть за принцессу или гриба.

                                  Боже, зачем я всё это знаю
                                  Ответить
                                  • >Япониский сложнее: https://youtu.be/5apu4ML9Wto

                                    Посмотри видео по моей ссылке.
                                    Он не может быть сложнее. В принципе.
                                    Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • апхаха, какая прелесть
                                    https://www.retrogamer.net/retro_games80/the-making-of-the-great-giana-sisters/
                                    Ответить
                                  • апхаха, какая прелесть
                                    https://www.retrogamer.net/retro_games80/the-making-of-the-great-giana-sisters/
                                    Ответить
                              • показать все, что скрытоvanished
                                Ответить
                        • показать все, что скрытоvanished
                          Ответить
                        • В нашей медшараге были такие. Студоте тупо кидали тестер в формате *.com и эмулятор - ебись, как хочешь, ставь, и проходи тест. А в кожно-венерологическом диспансере до сих пор есть парк компов с выпуклыми мониторами, под 95 винду. На них установлена программа оценки уровня знаний. Когда я первый раз вошёл в эту пещеру, ощутил чувство святости и высокого начала.
                          Ответить
                          • > парк компов с выпуклыми мониторами
                            В моей школе были такие в компуктерном класси, только стоял на них какой-то "Лёхкай линукс", который выглядел как испоганенная 98 винда. Мы на них ебались с ПопенОфис.
                            Ответить
                          • показать все, что скрытоvanished
                            Ответить
                        • > долбоёбы есть у которых 16ти битные программы для реального режима, написанные 25 лет назад.
                          Сидят токие долбоёбы на парах, пишут проги под дос. :)
                          Ответить
                          • На парах это другое: я не против изучения 16ти битного ассемблера в ВУЗе потому что это отличный способ изучить простой асемблер и научиться программировать железо (таймер там или контроллер прерываний)

                            Но в продакшене зачем?
                            Ответить
                            • > Но в продакшене зачем?
                              Трамплинчики для перехода в защищённый режим и обратно. Х.з. зачем ещё сейчас риалмодный асм...
                              Ответить
                              • Да, в продакшене-то зачем?
                                Ответить
                              • Ты думаешь они на парах пишут загрузчик который должен в бутблоке сидеть?
                                Ответить
                                • CSM пишут.

                                  З.Ы. Ты что-то там спрашивал дней 5 назад, напомни в каком треде.
                                  Ответить
                                  • Я спрашивал почему COM порты ищут перебором (пишут в регистр и читают обратно) а не через ACPI. Столкнулся с этим и был очень удивилен.

                                    cms -- Compatibility Support Module?
                                    Ответить
                                    • > Compatibility Support Module
                                      Угу.

                                      > почему COM порты ищут перебором
                                      Рискну предположить, что для раннего логирования, когда эти ваши ACPI ещё некому исполнять. Да и адреса этих портов менять уже никто никогда не будет.
                                      Ответить
                                      • >>для раннего логирования
                                        Всмысле чтобы запускать сосноль на компорту и отладчик ядра?
                                        Ответить
                                        • > сосноль на компорту и отладчик ядра
                                          Ну да. Или хотя бы просто логи загрузки туда сливать.
                                          Ответить
                              • Вот можно еще для антидебага риалмодный асм использовать
                                https://lj.rossia.org/users/herm1t/66091.html

                                http://man7.org/linux/man-pages/man2/modify_ldt.2.html
                                > The normal use for modify_ldt() is to run legacy 16-bit or segmented 32-bit code. Not all kernels allow 16-bit segments to be installed, however.

                                Этот modify_ldt кажется используется в DOSEMU и еще в Wine если им запустить 16-битные приложения винды
                                Ответить
                                • https://wayback.archive.org/web/20180102112819/https://www.wine-staging.com/news/2016-02-10-blog-wine-16bit.html
                                  Ответить
                                • >>push 0x003eafcc
                                  спасибо тебе господи что я не вирусописатель, это же ад и палестина

                                  >>modify_ldt
                                  Интересно, можно использовать эту фичу для безопастности: нарезать себе два сегмента: Один с правом записи, другой -- с правом исполнения, и получить нахаляву NX в 32битной моде?

                                  Просто если modify_ldt нужен только штоб 16ти битный код гонять то как-то жирно
                                  Ответить
            • debug.com 16ти битен (но судя по именам регистров это именно то, что вы хотели)

              работает он, соответственно, только в 32битной винде (в режиме V86), в long mode уже ничего этого нет

              Так что я сочувствую тебе, счастливый обладатель компютера с памятью менее 4 гигов
              Ответить
              • > debug.com 16ти битен (но судя по именам регистров это именно то, что вы хотели)
                Ковыряюсь в дерьме мамонта
                Ответить
              • показать все, что скрытоvanished
                Ответить
                • Ну тогда он может юзать до 64г, но программы-то всё равно не видят больше 4Г (если он не использует AWE которые никто кроме парочки серверных программ не умел)
                  Ответить
        • когда-то lea работал быстрее и позволял разгрузить арифметическое устройство потому что обрабатывался на устройстве, отвечающем за адреса

          но это уже давно не так.
          Ответить
          • > lea работал быстрее
            Кто-то где-то говорил, что inc/dec работает медленней add/sub. С чем это связано?
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • показать все, что скрытоvanished
                Ответить
              • То-есть у нас есть нахуй не нужная инструкция?)

                Вообще говоря начиная с пня весь асемблер переводится префетчером в лоу-левел код под конкретную архитектуру: он может не делатьразницы между inc и add 1
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • >>аж джвадцать лет назад..
                    Больше:)

                    >>Строго говоря не с пня, а с P6 (Pentium Pro и Pentium II).
                    Да, вероятно ты прав.
                    Там еще был pentium overdrive кажется, но я не знаю умел-ли он.
                    ---
                    зы: заглянул в книжку mindshare:
                    micro-op: fixed-length RISC instruction executed by P6 cpu core
                    всё так
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • Так был-ли он уже risc?
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Вика пишет что он был P54, так что таки да -- не был.
                            Но еще был Pentium II Overdrive который втыкался в Socket 8 (от Petntium Pro), когда нормальные PII уже вставляли в Slot 1.
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • >>то каким может быть ответ?
                                Да понятно, я просто обратил внимание что было два овердайва и первый был не risc, а второй risc.

                                >>Что из этой информации напрямую относится к RISC, а что нет?
                                В смысле можно-ли реализовать CMOV или MMX в cisc?)
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • Рискну предположить что кеш был прозрачен для программиста, в отличие от инструкций 3D Now.

                                    Тащемто кеш и сейчас прозрачен, если не считать инструкций для явного его сброса
                                    Ответить
                                    • > если не считать инструкций для явного его сброса
                                      ... и мельдоний
                                      Ответить
                                      • Мельдоний и использовал сайд эффект когда напрямую заглянуть в кеш нельзя, но можно проверить время
                                        Ответить
                                        • Ну значит таки не полностью прозрачен -- сказывается на таймингах. Тот же матан вон как выдрачивают под эффективную работу с кешем.
                                          Ответить
                                          • Имелось ввиду что нету инструкции явно "положить что-то в кеш". Кроме того тайминг это не часть ISA же, то-есть с набором инструкций все ок, но есть сайдэффект

                                            На самом деле я до сих пор в ахуе от того как люди додумались до такого.

                                            зы: Мышхъ целую главу написал про оптимизацию под кеш (правда уже сильно устаревшую), но мне кажется что большинству питушков (кроме гейдевов и мачимачихов) хватит просто последовательного чтения/записи: весь аппарат оптмизирован на референс локалити и последовательное обращение
                                            Ответить
                                            • > нету инструкции явно "положить что-то в кеш"
                                              PREFETCHxxx смотрит на тебя с недоумением.
                                              Ответить
                                              • >>PREFETCHxxx
                                                Могу соврать (надо зырить мануал) но мне казалось что никакой гарантии попадания данных в кеш там не было: ты мог "попросить процессор подвинуть данные ближе", то-есть это такой хинт, нет?
                                                Ответить
                                  • > гнездо на количество инструкций не влияет
                                    Да вроде только интел задуряется с новым несовместимым сокетом под каждое семейство процов. У AMD с сокетами постабильней.
                                    Ответить
                                    • >>под каждое
                                      Теперь вот на тебя смотрит LGA 775, переживший хуеву кучу микроархитектур
                                      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Все ржут над Unix, унаследовавшей кучу костылей, однако когда вышел Plan9 его все заклевали.
        Все ржут над JavaScript, однако когда гугл выпустил Dart его все заклевали.


        В мире один миллиард программ, написанных, отлаженных и скомпилированных под x86 со всеми его костылями.
        Прекрасный PowerPC, чудесный Itanium, умный Sparc64 именно по этой причине пошли, в свое время, лесом.
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • Ниша была новая -- ещё не было успешных конкурентов, ещё не было тонн легаси говна.
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • Ну ты сравнил количество кода под PC в 1999 году каком-нить и количество мобильных приложений в 2008м.

                Компании вложили миллионы баксов в софт, потому первый вопрос который они задавали производителю проца: "а там будет работать мой софт двадцатилетней давности?"

                Думаешь MS и Intel от хорошей жизни умели V86?
                Ответить
              • > Перед "Андроидом" и "iOS" было говно в виде "j2me"
                J2ME это ж не ось? Это жава вм хуита, её можно и на Андрюйде поставить.
                Ответить
          • К слову, M$ таки чуть-чуть опоздала и пошла лесом с мобильного рынка. Где сейчас мобилы с виндой?
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • Нету уже. MS свернул лавочку
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • https://www.theverge.com/2017/7/11/15952654/microsoft-windows-phone-end-of-support
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • А то, что без поддержки вендора сложно будет выпускать новые программы.

                        Жаль, кстати: C#.NET вполне годные язык и платформа
                        Ответить
                        • > сложно будет
                          Да выпускать то можно, но зачем? Тут та же ситуация, что и с десктопным линуксом -- если винда на мобилах не покрывает даже 0.3% рынка, то кто будет тратить ресурсы и под неё что-то писать?
                          Ответить
                          • >> что и с десктопным линуксом
                            Все Intellij-based продукты (включая Idea, Android Studio и PyCharm) имеют официальные Linux версии (даже snapы есть иногда!)

                            Android Studio -- официальная (по сути единственная) IDE для самой популярной мобильной платформы в мире (и устройств под ней скоро станет больше, чем компов под windows). И она официально поддерживает Linux.
                            Ответить
                        • З.Ы. А вот surface pro и его клоны таки нашли свою нишу. Тупо из-за того, что там amd64 и обычные виндовые проги можно юзать.
                          Ответить
                          • Вообще-то там 64-битный Intel, никаких AMD туда не ставили, насколько я знаю. И surface pro вообще ничем принципиально новым не является, просто очередной ноут с сенсорным экраном (будто бы до Microsoft никто такого не делал)
                            Ответить
                            • > 64-битный intel
                              А 64-битный intel это не amd64?

                              > ноут с сенсорным экраном
                              Скорее планшетка с клавой.
                              Ответить
                              • > А 64-битный intel это не amd64?
                                Есть некоторые инструкций, которые в AMD64 есть, а в 64-битных интелах нет. Да даже в 32-битную эру были такие инструкции, 3DNow!
                                И вот еще
                                https://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64

                                А еще были когда-то процессоры Cyrix, у которых тоже какие-то свои особые инструкции были
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • Не нужно. Можно подгружать модули в рантайме после CPUID.

                                    Некоторые ОС (gentoo, arch, netbsd, freebsd) encourage тебя компиляться под конкретный проц.
                                    Некоторые (ubuntu, debian, centos/redhat, openbsd) -- нет
                                    Ответить
                                • amd64 это неофициальное название всего long mode примерно как "ксерокопия" от слова "ксерокс"

                                  Много где можно встретить foo-x86 и foo-amd64, например
                                  Ответить
                                • >А еще были когда-то процессоры Cyrix, у которых тоже какие-то свои особые инструкции были

                                  Были. Cyrix 3dnow кстати тоже поддерживали.
                                  Которые по сути 64-битный sse.
                                  Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • mmx юзал регистры питуха afaik, а вот sse уже нет
                                        Ответить
                                        • показать все, что скрытоvanished
                                          Ответить
                                          • Я, если честно, не знаю кто юзал MMX и 3DNow.
                                            Квейк юзал?
                                            Ответить
                                            • показать все, что скрытоvanished
                                              Ответить
                                              • 3DNow как раз довольно много игорь юзали, т.к. там флоаты были не стековые.

                                                Сомневаюсь насчёт кваки. Кармак всю жизнь оптимизировал под интел.

                                                Хотя вот на вики пишут шо таки да
                                                https://en.wikipedia.org/wiki/Quake_II

                                                Unlike Quake, where hardware accelerated graphics controllers were supported only with later patches, Quake II came with OpenGL support out of the box. Later downloads from id Software added support for AMD's 3DNow! instruction set for improved performance on their K6-2 processors
                                                Ответить
                                                • >>3DNow как раз довольно много игорь юзали,
                                                  потому в 2001 году считалось что "amd лучше для игр"
                                                  Ответить
                                              • Как-то он их неудачно юзал.

                                                Я вот знаю что SSE последние юзают все: от подбирателей паролей до хрома, а мне интересно кто юзал mmx.
                                                У меня есть такое ощущение что в 90х годах софт компилировался под 386 потому что это было 60% парка компов, и завязываться на mmx было стремно.
                                                А когда уже стали более-ли-менее нормальные машины появляться то уже начались SSE

                                                Правда, это в России. Может быть в мире не так.
                                                Ответить
                                                • >а мне интересно кто юзал mmx

                                                  Тю ёба, да все юзали. Кому нужны были целые.

                                                  Но в играх нужнее флоаты.

                                                  А патч 3dnow сама АМД написала:

                                                  Half-Life: Uses MMX to great extent, particularly for the software DSP sound engine and probably also skeletal animation system

                                                  Unreal: Uses MMX for its Galaxy sound engine, in fact the readme suggests to lower the sampling rate to 11 kHz for better performance on non-MMX CPUs. MMX was also used greatly for the software renderer. There is probably some 3DNow! usage and SSE is detected, although I don't think it's used

                                                  Quake II: 3DNow! patch written by AMD to promote K6-2, provides a notable speed boost (and supposedly there are even graphical differences with this?!). There are specific options available for 3DNow! software, OpenGL and Voodoo2 MiniGL ("3DfxGL") IIRC, and also a later version that is more optimized towards K7. No MMX usage though:

                                                  Quake II does NOT use Intel's latest MultiMedia eXtensions. Unreal will though as well as other upcoming games. Even then, it's wise to buy a MMX chip if you're already thinking of upgrading your machine.

                                                  Ответить
                                                • The Quake engine uses the Intel FPU extensively, and also uses a native feature of the Intel FPU called Parallel FPU lines. This allows simultaneous integer and FPU calculations and Quake uses these to do lots of calculations at the same time. The problem is that the MMX instructions use the Parallel FPU lines for calculation, and if MMX were supported in Quake, Quake and the MMX would be fighting over the usage of the Parallel FPU lines. This isn't the problem for most programs because Quake is just about the first major program that even uses Parallel FPU lines in the first place, so other programs don't have this conflict.

                                                  Carmack reported that a MMX version of Quake he had in alpha stages would run, at best, the same speed in 16-bit colour as an 8-bit colour version does on a non-MMX Pentium chip of the same clock speed. Carmack says this increase in colour depth only isn't worth the development time and money and has decided not to support MMX with the Quake engine in its current form.
                                                  Ответить
                                                  • короче говоря mmx отжимали регистры у fpu и зато были нелюбимы. Хорошо что в SSE это пофикшено
                                                    Ответить
                                                    • А, я кажется вспомнил в чём прикол 3dnow был.

                                                      Он мог обрабатывать в джва раза больше флоатов, за те же деньги. Но 32х битных.

                                                      То есть за одну инструкцию они хуярили в 64битах по 2 флоата сразу.

                                                      Для игр точность была сильно критична, потому шло на ура.

                                                      Интел на тот момент вообще так не умел.

                                                      Просто у АМД это было хроническое. По интам PentiumRating вроде заебись, а плав. питух работал медленно.
                                                      Ответить
            • Опоздала буквально на пару лет, а могла бы всех вздернуть потому что в отличие от Apple и Google у них уже были и язык, и платформа, и IDE и куча разработчиков
              Ответить
            • У меня где-то валялся кнопошный смартфон с виндос мобайл 6.0 2009 или 2010 года высера. Тока аккумулятора у меня от него нет (надул пузико).
              Ответить
        • >гугл выпустил Dart его все заклевали

          Фублядь, фунахуй. Кому нужна очередная недоджава с плюшками?

          На фоне дарта js is pretty ok.
          Ответить
          • А помоему Dart красивый, почти как Сишка.
            Ответить
            • Так компилируется в js — бери, пользуйся.

              Только он нахуй никому не нужОн, этот ваш дарт.
              Ответить
              • > компилируется в js — бери, пользуйся.
                Развешто только для себя.

                Изза токих как ты он и нинужон, жысоманы.
                Ответить
              • >>Только он нахуй никому не нужОн, этот ваш дарт.
                https://flutter.io

                У человека, который хочет написать мобильное приложение и при этом не писать логику 2 раза (один раз на котлине, другой раз на свифте) есть два стула: на одном JS от фейсбука и апача точены, на другом C# от ксамарина и MS. Теперь есть третий стул от гугла с дартом.

                Был когда-то еще робовм чтобы все писать на джаве, но кажется он уже того
                Ответить
          • > Кому нужна очередная недоджава с плюшками?

            Ты, наверное, пропустил хайп TypeScript, который в точности соответствует твоему описанию.
            Ответить
            • >Ты, наверное, пропустил хайп TypeScript

              Никак нет.

              >который в точности соответствует твоему описанию

              В ts хотя бы отличия косметические: там необязательные типы после переменных, ключевое слово constructor.

              Правда это следствие самой ценной его фичи: обратной совместимости с ECMA5. Эдакий жс с автовыводом.
              Но как увидел все эти class, private, у меня реакция: «Шо, опять? Вот же ж жаба головного мозга.»

              И еще вот что удивительно, чего же M$ которая этот тайпскрипт выдумала, офис пишет на J$e?
              Ответить
              • Dart действительно взял у джавы (а та у сей) много говнеца
                1) не final по умолчанию
                2) декларацию где тип идет перед имеием
                3) ключ слово new которое не нужно никогда

                И все же оно лучше чем JS образца до 2015
                Ответить
                • > декларацию где тип идет перед имеием
                  А мне это нравится. Особенно сишные объявления типа:
                  char *((*f[100500])())();


                  > ключ слово new которое не нужно никогда
                  Ну да, но нет ничего сложного в том, чтобы написать слово из 3 буков.
                  Ответить
                  • > А мне это нравится

                    Зелёным, надеюсь? Одна из самых больших ошибок сишки, кмк.
                    Ответить
                    • Да вроде бы все уже это признали.

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

                      Хотя лет десять назад пришло осознание, и новые япы уже этим не страдают
                      Ответить
                      • Вообще, это вроде от Алкоголя такие объявления пошли.

                        > лет десять назад пришло осознание, и новые япы уже этим не страдают
                        Вирту яблоко на бошку первому упало. Ещё до сишки.
                        Ответить
                        • Вирт был параллелен сям, я про тех кто был воспитан на сишном ситнаксисе а потом перевоспитался)

                          Кстати, некоторые старики считали что тенденция 80-90 ухода от паскалеобразных к сиобразным это плохо
                          Ответить
                          • Дык хакиры должны ведь писать код, который они сами не смогут понять протрезвев, этожкруто, вот и перешли на си.
                            Ответить
                            • Ну такой код, не самый страшный
                              https://minnie.tuhs.org//cgi-bin/utree.pl?file=V2/c/cvopt.c


                              Смотрите, смотрите, auto в 1972м году
                              Ответить
                              • Это какой-то особый диалект Си без циклов?

                                Бля, что ты мне показал? Спагетти-код на Си в стиле старого Бейсика на сайте на Перл.
                                Ответить
                                • Это K&R си эпохи до C89

                                  зацени, кстати, няшщку:
                                  extern putchar,getc,peekc,printf,flag,flush;

                                  знаешь почему?

                                  Потому что в ту пору не указывали параметров в декларации и не распостраняли хедеровые файлы с ними

                                  Програмист под unix должен был набивать декларации сам, почерпнув их из бумажной документации

                                  Ответить
                              • показать все, что скрытоvanished
                                Ответить
                                • Совершенно верно.

                                  auto означает"автоматическая" переменная это такая, которая умирает при выходе из блока. Storage duration у нее такой.
                                  Сейчас многие называют ее "переменная на стеке", но на самом деле стек это как-бы деталь реализации.

                                  int действительно был типом по умолчанию, и потому не писался явно

                                  main(){
                                  return 42;
                                  }

                                  А еще не было void* и потому в старом коде (в dns клиенте штоль) можно встретить char* который не строка а указатель на неизвестное.

                                  В общем хорошо что весь этот K&R почил в бозе к моменту выхода C89


                                  зы: а еще там надо было немного по-другому указывать параметры функции
                                  Ответить
                              • показать все, что скрытоvanished
                                Ответить
                    • Мне ещё Алкоголь-68 нравится:
                      PROC f = (PROC(INT)INT g, []INT x)[]INT:(
                          # ... #
                      );
                      Ответить
                  • >>А мне это нравится
                    фу, какой толстый троллинг
                    >>Ну да, но нет ничего сложного в том,
                    фу, какой толстый троллинг
                    Ответить
                  • Ьля... Кто может это расшифровать?
                    Ответить
                    • https://cdecl.org/
                      Ответить
                      • В Сях, когда функция возвращает функцию, это ведь тоже что и указатель на функцию?
                        Ответить
                        • ага)
                          AFAIK функция может вернуть только указатель на функцию:)
                          В сях же нету лямд ;)
                          Ответить
                          • Ну, типы функция и указатель на функцию в Си различается, например sizeof(func) == 1, а sizeof(&func) == 4 (или 8), но по сути это одно и то же.
                            Ответить
                            • божемой, что такое sizeof(func)? Размер ЧЕГО он возвращает?
                              Ответить
                              • показать все, что скрытоvanished
                                Ответить
                                • Количество байт в байте
                                  Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • Было бы клево если бы sizeof возвращал размер функции, да)

                                      он ведь работает на этапе копеляции, то-есть он знает размер в буквах:)
                                      Ответить
                                      • показать все, что скрытоvanished
                                        Ответить
                                        • В си (плейн), все таки, нету строк, и там все передается по значению кроме массивов, которые (зачем-то) сделали через жопу.

                                          Я раньше думал что боялись порвать стек, но при этом размер структур-то никого не волнует, особенно если завернуть массив в структуру.

                                          зы: про ассемблер, кстати, согласен: программирование на нем очень хорошо ставит на место в голове понимание того, где и как хранятся объекты. Ты буквально все руками трогаешь и потому все понимаешь)
                                          Ответить
                  • > написать слово из 3 буков.
                    Я уже 15 часов жду этого.
                    Ответить
      • Ну арм же никто не заклевал? Да, он изначально не шел как замена винтелу.
        Ответить
    • Ох нихуя себе! Один дибил и 2 ассемблерные инструкции породили недельную дозу комментариев.
      Ответить

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