Написал свой ассемблер, чтобы понять, откуда в дизассемблере берётся ff010113. Заодно посчитал, сколько строк моей программы процессор вообще не умеет исполнять, и проверил это на четырёх наборах команд, включая живой ESP32 на столе. На кристалле первая программа серии сломалась: она пишет в UART быстрее, чем провод успевает передавать, и в эмуляторе этого не видно. Что сказала плата?
Движение невозможно. В частности, невозможно пересечь комнату, так как для этого нужно сначала пересечь половину комнаты, затем половину оставшегося пути, затем половину того, что осталось, затем половину оставшегося...
Вообще-то на Хабре уже были статьи про Go-ассемблер, но они перегружены мудрёными терминами, разной низкоуровневой спецификой и не дают ясного понимания когда и зачем нам помогут помочь ассемблерные функции.В этой статье я постараюсь дать больше сути, необходимый минимум, чтобы стало ясно, в каких случаях и зачем нам может помочь ассемблер в Го. Ну и с чем его едят. Читать далее
Попробую на маленьком примере показать откуда берётся запутанный код.Получаем задание от менеджера, для простоты это будет просто логическая функция. И пытаемся написать лучший код.Для упрощения написания маленькая буква будет означать что условие ложно, а большая - что истинно.Представляем функцию в виде карты Карно, чтобы оптимизировать всё что можно: Читать далее