3d форум по Blender

Другое => Программирование (любое) => Тема начата: Samovar от 26 Декабрь 2016, 18:17:30

Название: Ассемблер
Отправлено: Samovar от 26 Декабрь 2016, 18:17:30
Один хрен, тема всегда будет актуальна, для тех кто хочет скорости, или занимается системным программированием...
http://flatassembler.net
Их много, но этот наиболее прост...
Название: Re: Ассемблер
Отправлено: Samovar от 26 Декабрь 2016, 18:22:33
Справка по 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. Практикум (куча быстрого кода с комментариями, под разные задачи)
Название: Re: Ассемблер
Отправлено: Samovar от 02 Февраль 2017, 13:57:24
Отличие AT&T синтаксиса от Intel синтаксиса: http://www.ibm.com/developerworks/ru/library/l-gas-nasm/index.html
Шпаргалка по основным инструкциям ассемблера x86/x64: http://eax.me/assembler-basics/
Название: Re: Ассемблер
Отправлено: -andrey- от 18 Февраль 2017, 18:12:23
Делаю пятимерную БД, типа БД пока написал некий хоткей, потом обнаружил, что сохранение и чтение файлов гикнулось (вполне возможно что надругался над кодом после принятия спиртного - поумничать захотелось и начал исправлять), вчера весь день с отладчиком проискал ошибку. Тема тут, ответ номер 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 зауважали что проект не бросаю с программой :).
Название: Re: Ассемблер
Отправлено: Samovar от 18 Февраль 2017, 18:41:29
Цитировать
http://www.cyberforum.ru/order-program/thread1921557.html
ссылка нерабочая... а причём здесь ассемблер, если пишешь на паскале? ...присутствуют ассемблерные вставки?
я с паскалем не знаком, но сталкивался здесь http://blender-3d.ru/forum/index.php/topic,1263.0.html
Название: Re: Ассемблер
Отправлено: -andrey- от 18 Февраль 2017, 18:57:16
прога-костыль для кодера, но использовать можно в разных целях, просто пишу на паскале. http://www.cyberforum.ru/order-program/thread1921557.html .
я просто помню таблицу машинного кода процессора, тогда двумерной таблицы хватало, сейчас с новыми процами - пятимерки хватитвыше потолка думаю, да и так для разных языков программирования. фишка в том, что по сути типы команд одинаковые во многих языках программирования, чуть разница будет от ориентации языка, но для этого будут ещё одни сведения в таблице. в общем мне по сути там работы не много осталось сделать, как сделано, совсем немного осталось.
Название: Re: Ассемблер
Отправлено: Samovar от 18 Февраль 2017, 18:59:08
А... тогда успехов :)
Название: Re: Ассемблер
Отправлено: -andrey- от 18 Февраль 2017, 19:03:39
Спс :) .
Название: Re: Ассемблер
Отправлено: sungreen от 18 Февраль 2017, 19:57:17
>> Делаю пятимерную БД
... настораживает ограничение размерности, вроде уж более четверти века как за многомерность никого не сжигали на костре ...
Название: Re: Ассемблер
Отправлено: ThreeDancingFlies от 23 Февраль 2017, 15:16:36
Эх почти 3 года кодил под фасмом, на 2 архитектуры процов, но советовать его к изучению можно только тем кто хочет понять как работает процессор, оптимизаторам кода. Насчет системных программистах спорно. Помню словил сильный батхерт когда меня заставили изучать его но потом втянулся. Моя первая прога на нем - менеджер памяти с сегментами в двунаправленном списке до сих пор ночами сниться. И начинал я когда  rax и в помине небыло  но был eax.
Название: Re: Ассемблер
Отправлено: Samovar от 06 Март 2017, 04:09:49
Круто, я знаком только с архитектурой 8086 , в которой и в помине не было ax, и тем более eax.
Эту тему я стартанул из-за Ланхумыча, который, изучив Python, думает, что он программист :)  с претензией на величие :) 
 И в надежде, что есть умные люди, которые не пойдут его путём заблуждений...
Название: Re: Ассемблер
Отправлено: Samovar от 06 Март 2017, 11:32:04
Блин, перепутал 8080 с 8086... так давно это было... только с ассемблером 8080 толком знаком (с таким процом был комп дома)... 8086 щупал ещё в школе на высоком уровне, DOS, qbasic, Norton Commander. Вначале, вместо пиления напильником целый день раз в неделю УПК ( весь 9-й класс я благополучно пилением и сверлением занимался, а в компах нас обучали в 10-11 классе средней школы, помимо основной программы ), нас учили на каких-то советских "АГАТ" первые пол года, впаривая про АЛУ, УУ, шины данных, адреса и управления. Потом поставили IBM 8086 и один "суперкомпутер" - 286 :)  и всё низкоуровневое программирование закончилось...
Название: Re: Ассемблер
Отправлено: Samovar от 06 Март 2017, 11:57:49
Цитировать
Насчет системных программистах спорно
Нихрена не спорно, а так и есть... чтобы быть системщиком, надо знать "железо".  Тем более, BIOS или драйвер устройства, ты вряд ли напишешь на другом ЯП.
Название: Re: Ассемблер
Отправлено: ThreeDancingFlies от 06 Март 2017, 12:41:22
Цитировать
Насчет системных программистах спорно
Тем более, BIOS или драйвер устройства, ты вряд ли напишешь на другом ЯП.
Еще как пишут:https://habrahabr.ru/post/40466/ Есть даже контроллеры для которых свои С++ компиляторы есть, но можно и на машинном языке.
Название: Re: Ассемблер
Отправлено: Samovar от 06 Март 2017, 12:46:47
А... это Си... :) Ну если ты решил отдаться на милость компилятору, а не самостоятельно управлять процессами, то фперёд... :)  И если возникнет ошибка или баг, то без знания ассемблера не обойтись...
Название: Re: Ассемблер
Отправлено: Samovar от 30 Март 2017, 08:49:30
Не знаю почему 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)
Название: Re: Ассемблер
Отправлено: LanuHum от 15 Апрель 2017, 22:23:31
Эту тему я стартанул из-за Ланхумыча, который, изучив Python, думает, что он программист :)  с претензией на величие :) 
 И в надежде, что есть умные люди, которые не пойдут его путём заблуждений...
Хочешь сказать, что изучив Ассемблер, мои претензии на величие станут обоснованными?
Пока что меня больше интересует обшивка стен гипсокартоном, но, когда это пройдёт, может, я всё же внемлю. Не знаю только, что ты будешь делать с моим кодом, написанным на yasm или nasm.
Теперь ещё раз про быстродействие. Планирую собрать комп с процессором AMD Ryzen (8 ядер по два потока за умеренную цену). Символическое название: составное слово, имеющее два корня - рай и зен. Будет зен, будет и рай. Не будет зена - не спасёт ни Питон ни Ассемблер. :) :) :)
Название: Re: Ассемблер
Отправлено: sungreen от 15 Апрель 2017, 22:30:59
>> AMD Ryzen
... насколько он интереснее Intel? ...
Название: Re: Ассемблер
Отправлено: Samovar от 15 Апрель 2017, 22:31:27
И тебе привет, Ланухумыч :) 
Кстати, Yasm - хорошее решение: http://yasm.tortall.net/Download.html (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3lhc20udG9ydGFsbC5uZXQvRG93bmxvYWQuaHRtbA==)
Название: Re: Ассемблер
Отправлено: LanuHum от 15 Апрель 2017, 22:47:54
>> 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
Название: Re: Ассемблер
Отправлено: LanuHum от 15 Апрель 2017, 23:05:24
И тебе привет, Ланухумыч :) 
Кстати, 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
Название: Re: Ассемблер
Отправлено: Samovar от 03 Ноябрь 2020, 13:06:52
Несколько 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/
Название: Re: Ассемблер
Отправлено: Anchoret от 08 Январь 2023, 07:14:02
Знал лет 25 назад человека, который делал прошивку для ПЗУ для станков с ЧПУ напрямую в битовой последовательности по памяти. Т.е полное знание системы команд и перевод на лету шестнадцатиричного кода в двоичный. Даже уговорил его с моими правками перешить ПЗУ для любимого ZX Spectrum)

Правда я тогда с кодом накосячил и ничего путного не вышло. Хотел добавить процедур для считывания/записи с гибких дисков и прочее.
Название: Re: Ассемблер
Отправлено: Николай Николаев от 08 Январь 2023, 08:34:46
... подозреваю, что потребность в умении "напрямую в битовой последовательности по памяти" может скоро вернуться ...
... хотя к тому времени таких человеков возможно уже не будет или "по памяти" закончится ...
Название: Re: Ассемблер
Отправлено: Samovar от 09 Январь 2023, 04:50:48
Цитировать
Т.е полное знание системы команд и перевод на лету шестнадцатиричного кода в двоичный.
Шестнадцатиричный код, это хорошая и полезная весчь... двоичный, тоже :)
Главное , чтоб ты понимал, то, о чём пишешь...
Булеву алгебру, и как оно там всё на самом деле работает...
Название: Re: Ассемблер
Отправлено: Anchoret от 11 Январь 2023, 01:18:52
Когда мучил ассемблер на Спектруме чисел с плавающей точкой не касался - не требовалось. Потребовалось года четыре назад, когда сортер под 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)
Название: Re: Ассемблер
Отправлено: Samovar от 11 Январь 2023, 01:41:24
Согласен, что вариант с фиксированной точкой шустрее, но жрёт больше байт :)
Если писать свой движок рендеринга, то лучше использовать фиксированную точку для  скорости вычислений... В прочем, об этом и был спор с LanuHum и эта тема Ассемблера нарисовалась...
Название: Re: Ассемблер
Отправлено: Samovar от 22 Январь 2023, 02:54:37
Ещё одна IDE  для  любителей низкоуровнего программирования
SASM
Simple crossplatform IDE for NASM, MASM, GAS, FASM assembly languages
https://dman95.github.io/SASM/ (https://dman95.github.io/SASM/)
Название: Re: Ассемблер
Отправлено: Samovar от 05 Февраль 2023, 20:07:36
Прикольная логическая игра. Считай, самоучитель по логике программирования на ассемблере.
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)
Название: Re: Ассемблер
Отправлено: Striver от 06 Февраль 2023, 09:57:10
Цитировать
Прикольная логическая игра. Считай, самоучитель по логике программирования на ассемблере.
Играл в неё, но как и большинство игр, в какой-то момент забросил.

А 7 Billion Humans всё никак не начну, хотя надо бы...
Название: Re: Ассемблер
Отправлено: Samovar от 07 Февраль 2023, 19:11:16
 7 Billion Humans, не играл... поглядел скрины - это уже ближе ЯП среднего (Си/C++) и высокого уровня Basic, Pascal, Java, Python, Lua, C# и прочая...
Честно говоря, просто кому-то на фрилансе надо было что-то подобное запилить на Godot (основные механики и три первых уровня), вот и полюбопытствовал... бюджет там был за это всё дело скромный, 6000 руб. всего (да, с графикой, анимацией, фонами, UI и прочая, и ясен пень, со всеми основными игровыми механиками)... смешно :)  ...
Скачал, погонял чуток, усмотрел в этом логику Ассемблера, запостил...