Здорово!
Собсно, САБж
Есть ли где нибудь кроссплатформенный ассемблер ?
Чтоб команды сложыть, умножыть, делить и вычисть были для всех процессоров одинаковые ?
Vendein_RaZoR
> Здорово!
> Собсно, САБж
Несколько раз отпинать, чтоб научился разговаривать...
Разговаривать я умею, а с письмом проблема
Пинать не надо, я холосый
Например https://llvm.org/ ейный IR вполне себе катит за ассемблер
у каждого процессора свой ассемблер.
У разных процессоров не совпадает ни разрядность регистров, ни их количество, ни способ организации банка регистров (например, регистровое окно не имеет вообще ничего общего с банком регистров любого x86, или AMD64 процессора), ни даже количество банков регистров. У некоторых процессоров есть регистр-аккумулятор, у других – несколько регистров общего назначения. С чем Вы собрались выполнять одну и ту же обозначенную одной и той же мнемоникой операцию? У одних процессоров адреса базируются прямой конкатенацией смещения с базовым регистром, у других – сложением смещения с базой, вычисляемой сдвигом сегментного регистра на величину, меньшую разрядности смещения. Пример конкатенации смещения с базой – Z80, пример вычисления базы сдвигом на величину, меньшую разрядности смещения, и последующего сложения со смещением – i80286. Мало того, z80 требует загрузки смещения в регистр, однозначно соответствующий базовому. Значит единый доступ к памяти тоже летит к чёрту, так как на низком уровне все эти тонкости учитываются в коде. Плюс разные наборы разрядностей операций. Только 8, только 16, от 8-ми до 32-х, только 64. Какую операцию Вы собрались единообразно кодировать? Сложение байтов? Привет процессорам, поддерживающим логику и арифметику только четверных слов. Четвереные слова? Привет малоразрядным контроллерам. RISC-процессоры позволяют загрузить в регистр часть значения, CISC – только целое значение. Мало того, байт не обязан быть октетом, возможны процессоры и с байтами бит так по 48, или даже 96. И довершает зоопарк Сетунь, вообще не понимающая, что такое байт. А трайт у неё шеститритный. Проще будет научиться танцевать, использовать эти знания для проектирования термоядерной электростанции.
0iStalker
> Например https://llvm.org/ ейный IR вполне себе катит за ассемблер
А по-русски?
Опять по-нерусски.
Тарас-Прогер
> Опять по-нерусски.
Что тебе неясно-то?
Vendein_RaZoR
> Есть ли где нибудь кроссплатформенный ассемблер ?
> Чтоб команды сложыть, умножыть, делить и вычисть были для всех процессоров
> одинаковые ?
Cи ? сложить, умножить делить и вычесть - для всех процессоров одинаковые.
кроссплатформенный!
Vendein_RaZoR
А для чего тебе ассемблер? Разве C / C++ не устраивает?
Я когда-то тоже мечтал движок на ассемблере написать, но для меня это уже перебор :) остановился на плюсах
gudleifr
> И да, потом он пишет движок - это вторая ступень вниз.
Ты только не напиши это тем, кто уже выпустил на своём движке игру, они решат, что ты выпил не менее цистерны боярышника.
У нас ходят такие по району, практически каждый день его пьют, глаза мутные, ничего не соображающие, как зомби.
А я, например, без разработки своего движка уже не могу, постоянно приходится решать какие-то вопросы, особенно, если ты пишешь движок для разработки игр, а не бесцельно. Даже звуковой движок сам пишу.
P.S. Насмотрелся уже на Юнити, UE4, CryEngine, не вызвали ни малейшего желания с ними работать = народу вроде много их делает и даже вроде за зарплату, но такое впечатление, что этим занимается гопка школьников на энтузиазме в свободное от учёбы время = слишком много вещей в них требуют доделок, особенно, если учесть, сколько времени и сил на них уже было затрачено и до сих пор не смогли многие вещи довести до ума. Я имею в виду редакторы.
1 frag / 2 deaths
> Что тебе неясно-то?
Всё.
Ассемблер, кстати, как раз и предназначен для того, чтоб писать на языке, зависимом не только от процессора, а от каждой компьютерно-архитектурной мелочи вроде DMA, номеров прерываний и способа передачи им параметров и даже самостоятельно ровнять данные. Так что кросплатформенный ассемблер – это даже концептуально крокодил зелёный, синий как морковка. А если кросплатформенности, то тебе нужен не ассемблер и даже не паскаль, а язык высокого уровня. Например, си.
Тарас-Прогер
> Так что кросплатформенный ассемблер – это даже концептуально крокодил зелёный, синий как морковка.
На ассемблере даже на Спектруме было геморрно писать, где всё было предельно ясно, а уж на ПК = это вообще пиздец... ещё на Турбоассемблере можно было какой-нибудь «Hello World!» состряпать, но что-то более сложное уже смысла не имело, когда есть C / C++.