3d форум по Blender
Другое => Программирование (любое) => Тема начата: Samovar от 26 Декабрь 2016, 18:17:30
-
Один хрен, тема всегда будет актуальна, для тех кто хочет скорости, или занимается системным программированием...
http://flatassembler.net
Их много, но этот наиболее прост...
-
Справка по FASM: http://asmworld.ru/news/spravochnik-po-fasm/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2FzbXdvcmxkLnJ1L25ld3Mvc3ByYXZvY2huaWstcG8tZmFzbS8=)
Хороший сайт, там же есть и учебник
Литература для глубокого вникания:
http://www.bookwebmaster.narod.ru/assembler.html (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3d3dy5ib29rd2VibWFzdGVyLm5hcm9kLnJ1L2Fzc2VtYmxlci5odG1s)
Особенно рекомендую:
Assembler. Учебник для вузов.
Assembler. Практикум (куча быстрого кода с комментариями, под разные задачи)
-
Отличие AT&T синтаксиса от Intel синтаксиса: http://www.ibm.com/developerworks/ru/library/l-gas-nasm/index.html
Шпаргалка по основным инструкциям ассемблера x86/x64: http://eax.me/assembler-basics/
-
Делаю пятимерную БД, типа БД пока написал некий хоткей, потом обнаружил, что сохранение и чтение файлов гикнулось (вполне возможно что надругался над кодом после принятия спиртного - поумничать захотелось и начал исправлять), вчера весь день с отладчиком проискал ошибку. Тема тут, ответ номер 6 если что. Так вот про что это я. Я в детстве-ранней юности кодить пробовал на ассемблере, тогда все команды машинного кода помещались на двумерной таблице. И вот свою пятимерную программу я делаю как костыль для кодинга, когда собственно приходится хвататься за разные языки программирования, и в памяти все не упомнишь в идеале, вот для этого я делаю пятимерку БД. Ввёл хоткей, сохранения и открытия файлов, осталось файл сопроводительного описания и код под сопроводительное описание, и в принципе можно будет выкладывать в открытый доступ. Вот эта тема про ассемблер мне тоже указывает, что я пишу правильную программу - нужную (я до сих пор, хоть это было и очень давно, помню вид таблицы 16 на 16 команд ПК Радио 86 РК, но команды ассемблера тоже были в руководстве).
Тут последние доработки в ответе номер 6, http://www.cyberforum.ru/order-program/thread1921557.html, версия Lazarus 1.4.0, на 1.6.0 не идёт - возможно потому что я не всё убрал после использования в программе консоли (она работала как с формой так и с консолью). Для нормальной работы программы (событий грида) )нужно поставить и убрать галочку с чекбокса, вот это и есть этот неприятный глюк. Но в общем-то он не страшен.
Главное событие перехода прошлого года в новый http://3dtoday.ru/blogs/accurate-random/polar-horse/ , угодил в песочницу, но из-за того, что тему не правильно назвал, по сути это 3D коробка передач, там по линку есть ссыль на патент (в коментах есть не маловажные сведения). Но мне пофиг на песочницу, меня на cyberforum.ru зауважали что проект не бросаю с программой :).
-
http://www.cyberforum.ru/order-program/thread1921557.html
ссылка нерабочая... а причём здесь ассемблер, если пишешь на паскале? ...присутствуют ассемблерные вставки?
я с паскалем не знаком, но сталкивался здесь http://blender-3d.ru/forum/index.php/topic,1263.0.html
-
прога-костыль для кодера, но использовать можно в разных целях, просто пишу на паскале. http://www.cyberforum.ru/order-program/thread1921557.html .
я просто помню таблицу машинного кода процессора, тогда двумерной таблицы хватало, сейчас с новыми процами - пятимерки хватитвыше потолка думаю, да и так для разных языков программирования. фишка в том, что по сути типы команд одинаковые во многих языках программирования, чуть разница будет от ориентации языка, но для этого будут ещё одни сведения в таблице. в общем мне по сути там работы не много осталось сделать, как сделано, совсем немного осталось.
-
А... тогда успехов :)
-
Спс :) .
-
>> Делаю пятимерную БД
... настораживает ограничение размерности, вроде уж более четверти века как за многомерность никого не сжигали на костре ...
-
Эх почти 3 года кодил под фасмом, на 2 архитектуры процов, но советовать его к изучению можно только тем кто хочет понять как работает процессор, оптимизаторам кода. Насчет системных программистах спорно. Помню словил сильный батхерт когда меня заставили изучать его но потом втянулся. Моя первая прога на нем - менеджер памяти с сегментами в двунаправленном списке до сих пор ночами сниться. И начинал я когда rax и в помине небыло но был eax.
-
Круто, я знаком только с архитектурой 8086 , в которой и в помине не было ax, и тем более eax.
Эту тему я стартанул из-за Ланхумыча, который, изучив Python, думает, что он программист :) с претензией на величие :)
И в надежде, что есть умные люди, которые не пойдут его путём заблуждений...
-
Блин, перепутал 8080 с 8086... так давно это было... только с ассемблером 8080 толком знаком (с таким процом был комп дома)... 8086 щупал ещё в школе на высоком уровне, DOS, qbasic, Norton Commander. Вначале, вместо пиления напильником целый день раз в неделю УПК ( весь 9-й класс я благополучно пилением и сверлением занимался, а в компах нас обучали в 10-11 классе средней школы, помимо основной программы ), нас учили на каких-то советских "АГАТ" первые пол года, впаривая про АЛУ, УУ, шины данных, адреса и управления. Потом поставили IBM 8086 и один "суперкомпутер" - 286 :) и всё низкоуровневое программирование закончилось...
-
Насчет системных программистах спорно
Нихрена не спорно, а так и есть... чтобы быть системщиком, надо знать "железо". Тем более, BIOS или драйвер устройства, ты вряд ли напишешь на другом ЯП.
-
Насчет системных программистах спорно
Тем более, BIOS или драйвер устройства, ты вряд ли напишешь на другом ЯП.
Еще как пишут:https://habrahabr.ru/post/40466/ Есть даже контроллеры для которых свои С++ компиляторы есть, но можно и на машинном языке.
-
А... это Си... :) Ну если ты решил отдаться на милость компилятору, а не самостоятельно управлять процессами, то фперёд... :) И если возникнет ошибка или баг, то без знания ассемблера не обойтись...
-
Не знаю почему wasm.ru теперь не работает, вот сообщество VK https://vk.com/wasm_ru (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly92ay5jb20vd2FzbV9ydQ==)
Форум и статьи с wasm.ru теперь здесь https://wasm.in (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly93YXNtLmlu)
Архив wasm.ru в формате CHM (24 Мб) https://vk.com/doc7511175_438461027?hash=90c4ae4b70e598c01f&dl=8488fd5e2774dea01c
Введение в машинный код — Архив WASM.RU https://wasm.in/blogs/vvedenie-v-mashinnyj-kod.131/ (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly93YXNtLmluL2Jsb2dzL3Z2ZWRlbmllLXYtbWFzaGlubnlqLWtvZC4xMzEv)
-
Эту тему я стартанул из-за Ланхумыча, который, изучив Python, думает, что он программист :) с претензией на величие :)
И в надежде, что есть умные люди, которые не пойдут его путём заблуждений...
Хочешь сказать, что изучив Ассемблер, мои претензии на величие станут обоснованными?
Пока что меня больше интересует обшивка стен гипсокартоном, но, когда это пройдёт, может, я всё же внемлю. Не знаю только, что ты будешь делать с моим кодом, написанным на yasm или nasm.
Теперь ещё раз про быстродействие. Планирую собрать комп с процессором AMD Ryzen (8 ядер по два потока за умеренную цену). Символическое название: составное слово, имеющее два корня - рай и зен. Будет зен, будет и рай. Не будет зена - не спасёт ни Питон ни Ассемблер. :) :) :)
-
>> AMD Ryzen
... насколько он интереснее Intel? ...
-
И тебе привет, Ланухумыч :)
Кстати, Yasm - хорошее решение: http://yasm.tortall.net/Download.html (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3lhc20udG9ydGFsbC5uZXQvRG93bmxvYWQuaHRtbA==)
-
>> AMD Ryzen
... насколько он интереснее Intel? ...
Интересная цена 36 770 руб
Характеристики
Разъем
Socket AM4
Ядро
Summit Ridge
Количество ядер
8
Количество потоков
16
Техпроцесс
14 нм
Номинальная частота процессора , ГГц
3.6
Частота в режиме Intel Turbo Boost/AMD Turbo Core , ГГц
4
Номинальный множитель
37x
Кэш L1
8 x 64 КБ / 8 x 32 КБ
Кэш L2
8 x 512 КБ
Кэш L3
2 x 8 МБ
Рассеиваемая мощность , Вт
95
Дополнительно
Встроенный двухканальный контроллер памяти DDR4,
Поддержка SHA (безопасный алгоритм хеширования),
Разблокированный множитель
Дополнительно
Встроенная в процессор графика
Нет
Поддерживаемые инструкции
AES,
AVX,
AVX2,
BMI,
BMI1,
BMI2,
Extensions to MMX,
F16C,
MMX,
SSE,
SSE2,
SSE3,
SSE4,
SSE4.1,
SSE4.2,
SSE4a,
SSSE3
Технологии
AMD64,
Extended Frequency Range (XFR),
Neural Net Prediction,
Precision Boost,
Pure Power,
Simultaneous Multithreading (SMT),
Smart Prefetch
-
И тебе привет, Ланухумыч :)
Кстати, Yasm - хорошее решение: http://yasm.tortall.net/Download.html (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3lhc20udG9ydGFsbC5uZXQvRG93bmxvYWQuaHRtbA==)
Про nasm есть по русски:
http://asmcourse.cs.msu.ru/?page_id=169
-
Несколько IDE под Windows для программистов на Ассемблере (FASM):
Fasm Editor 2.0 https://fasmworld.ru/instrumenty/fasm-editor-2-0/
Fresh IDE https://fresh.flatassembler.net/index.cgi?page=content/2_download.txt
ASM Visual (FASM,TASM,MASM) https://gri-software.com/ru/asmvisual/
-
Знал лет 25 назад человека, который делал прошивку для ПЗУ для станков с ЧПУ напрямую в битовой последовательности по памяти. Т.е полное знание системы команд и перевод на лету шестнадцатиричного кода в двоичный. Даже уговорил его с моими правками перешить ПЗУ для любимого ZX Spectrum)
Правда я тогда с кодом накосячил и ничего путного не вышло. Хотел добавить процедур для считывания/записи с гибких дисков и прочее.
-
... подозреваю, что потребность в умении "напрямую в битовой последовательности по памяти" может скоро вернуться ...
... хотя к тому времени таких человеков возможно уже не будет или "по памяти" закончится ...
-
Т.е полное знание системы команд и перевод на лету шестнадцатиричного кода в двоичный.
Шестнадцатиричный код, это хорошая и полезная весчь... двоичный, тоже :)
Главное , чтоб ты понимал, то, о чём пишешь...
Булеву алгебру, и как оно там всё на самом деле работает...
-
Когда мучил ассемблер на Спектруме чисел с плавающей точкой не касался - не требовалось. Потребовалось года четыре назад, когда сортер под VBA для double писал - альтернативный вариант поразрядной сортировки для чисел с плавающей запятой, только в качестве разрядов выступал набор байтов. Как оказалось такой вариант сортировки по фиксированному количеству байтов числа довольно шустрый - точно не медленнее "быстрой сортировки" (там как раз пришлось загуглить как оно с точки зрения процессора записано).
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=98837&TITLE_SEO=98837-sortirovka-v-dvumernom-massive-vba-excel&MID=956614&user_name=anchoret&date_last_visit1=&date_last_visit2=&sort=NUM_POSTS&set_filter=%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80#message956614 (ftp://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=98837&TITLE_SEO=98837-sortirovka-v-dvumernom-massive-vba-excel&MID=956614&user_name=anchoret&date_last_visit1=&date_last_visit2=&sort=NUM_POSTS&set_filter=%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80#message956614)
-
Согласен, что вариант с фиксированной точкой шустрее, но жрёт больше байт :)
Если писать свой движок рендеринга, то лучше использовать фиксированную точку для скорости вычислений... В прочем, об этом и был спор с LanuHum и эта тема Ассемблера нарисовалась...
-
Ещё одна IDE для любителей низкоуровнего программирования
SASM
Simple crossplatform IDE for NASM, MASM, GAS, FASM assembly languages
https://dman95.github.io/SASM/ (https://dman95.github.io/SASM/)
-
Прикольная логическая игра. Считай, самоучитель по логике программирования на ассемблере.
Human Resource Machine
https://store.steampowered.com/app/375820/Human_Resource_Machine/ (https://store.steampowered.com/app/375820/Human_Resource_Machine/)
(https://cdn.akamai.steamstatic.com/steam/apps/375820/ss_d146beeb297e888eb9bff16d940c071afe07d4e7.600x338.jpg?t=1667105782)
-
Прикольная логическая игра. Считай, самоучитель по логике программирования на ассемблере.
Играл в неё, но как и большинство игр, в какой-то момент забросил.
А 7 Billion Humans всё никак не начну, хотя надо бы...
-
7 Billion Humans, не играл... поглядел скрины - это уже ближе ЯП среднего (Си/C++) и высокого уровня Basic, Pascal, Java, Python, Lua, C# и прочая...
Честно говоря, просто кому-то на фрилансе надо было что-то подобное запилить на Godot (основные механики и три первых уровня), вот и полюбопытствовал... бюджет там был за это всё дело скромный, 6000 руб. всего (да, с графикой, анимацией, фонами, UI и прочая, и ясен пень, со всеми основными игровыми механиками)... смешно :) ...
Скачал, погонял чуток, усмотрел в этом логику Ассемблера, запостил...