Обновить
166
0
John Found@johnfound

Инженер автоматизации

Отправить сообщение

Ну-у-у, а зачем вообще рекурсивно??? Нерекурсивный алгоритм в случае намного и читабельнее и компактнее.

Как в соответствии с этим реализовать, например, алгоритм Евклида с переменными a и b

А зачем нужно это ограничение «с переменными a и b»? Правильный вопрос будет «Как реализовать алгоритм Евклида?»

Она соответствует регистру, или нет?

Нет.

Очень даже хорошо видно, если ограничить переходы в пределах страницы текста. А это кстати одна из хороших практик в ассемблере. Если надо прыгать дальше, значит нужно написать по другому.


Правильные имена меток тоже помогают лучше проследить структуру.

Ассемблер читается очень и очень не так как ЯВУ. Отступы конечно можно использовать, некоторые так и делают. Но лучше всё-таки читать по ассемблерному – по вертикали и аккордами, а не отдельными инструкциями. Тогда и вложенность отличается прекрасно.

Конечно нет. Я такое не писал. Опять повторяю, регистры (да и стек тоже) это ресурс, которого нет в языках высокого уровня. И поэтому нельзя рассматривать их с высокоуровневой точки зрения. Ничего не получится.


Вообще, тема о удобочитаемости ассемблерного кода и вообще структурного программирования на ассемблере очень длинная и непростая. В этой статье я рассматриваю микроскопическую долю этой темы. Может быть напишу отдельную статью, где рассмотрю все это более обобщенно.

Не холивара ради, но вот такой вопрос: а для arm-процессоров будете повторно такой код писать?

Да, я считаю, что для разных процессоров код надо писать отдельно. Да, «по мотивам», но отдельно.

В соответствии с ним лучше вообще мозгов не иметь.

Это только пока. Но шанс размножится в космосе и населить галактику есть только у нашего вида. Но конечно шанс есть только шанс. Воспользуемся ли мы этим шансом, вот в чем вопрос.

Тот факт, что у вас названия переменных фиксированы

Не надо рассуждать о регистрах как о переменных. Они такими не являются. Переменные в ассемблере, находятся в памятью и имеют нормальные имена. А регистры, это регистры – ресурс которого просто нет в высокоуровневых языков.

Вы просто путаете форму с содержанием. Все эти if-else-while, суть высокоуровневые конструкции, которым не место в ассемблере.


Но суть структурного программирования совсем в другом. Можно программировать структурно и на ассемблере. А можно писать неструктурированный код и на C++.

Нет, вы не поняли. Я имел ввиду что ваш C++ код и мой C++ код, компилируются одинаково. Хотя и отличаются в исходниках. И они компилируются до варианта в статье – с test и использованием второго регистра (код спрятан в спойлере «Конечно, я скомпилировал этот C++ код».

Да, теперь все в порядке.


Но самое интересное, что теперь ваш код компилируется до абсолютно тех же самых инструкции как и мой C++ код.


Теперь надо только разобраться кто из них более удобочитаемый. :)

На ассемблер можно и нужно писать сообразно идеи структурного программирования. Структурное программирование далеко не заключается в неиспользованием goto/jmp.

Ваш код не работает корректно если коренных узлов больше одного. То есть не эквивалентен C++ коду в статье.

Статья о удобочитаемости, а не о эффективности кода.


Хотя, все эти данные находятся в кеше, так что какой из вариантов будет быстрее, это далеко не простой вопрос. Здесь могут вмешаться и механизмы предсказания переходов.


Но опять – статья о читаемости и понятности, а не о производительности.

Эволюционная стратегия вида homo sapiens основана на интеллекте. А растений нет.

Кстати то ли Аристотель, то ли Платон писал, что демократия это когда выбираются случайном образом. А выборы через голосование свойственны олигархиям.

Как по мне, нет таких методов. Точнее есть – эволюционные – кто выжил и размножился, тот и умнее.


А те «объективные» методы, которые вы имеете ввиду, оценивают какие-то другие параметры интеллекта.

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

Я бы не сказал, хотя популярность такого мнения понятна.


Заметьте, что те которые вы считаете тупыми, тоже думают что большинство населения тупое. И тоже себя не включают в эту группу.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность