Как известно хороший инструмент определяет качество изделия. Так и хороший программист должен иметь хороший инструмент. Есть идея заработать ассемблер который представлял мнемоники в виде алгоритма. А програмирование осушествлялось бы установкой необходимых блоков. Получилась бы графическая среда для написания программ. Такая среда уже существует правдо только для процесоров ATMEL(AVR). Называется AlgorithmBuilder сайтhttp://algrom.net/russian.html. Сделать точно такую же среду только для процессоров Intel.
Представляете на сколько станет читаемый язык ассемблера. Любой алгоритм станет прозрачный как стекло. Сам пользовался AlgorithmBuilder-ом ощущения очень положительные.
Замучаешься возиться с ним. Быстрее набрать несколько вложенных циклов, например, чем мышкой возить их блоки + вписывать значение.
Эффективность зависит от горячих клавиш. Которые только нажимать надо один раз и сразу блок текста. Ради эксперемента скачайте AlgorithmBuilder и попробуйте написать программу сразу поймете как это просто и легко. Уменя на нем целая операционка написана для ATMega128. Так я ее за 2 недели склепал на нем. Главное это не эффективность а прозрачность алгоритма. Когда пишешь большие проекты то бываешь забываешь что ты там писал месяц назад. А тут зглянул и сразу понял что к чему. Поверте моему опыту.
AS25 Вопрос - что быстрее запомнить : всю мнемонику ? или всю мнемонику + горячие клавиши ? ИМХО, писать на блоках слишком геморно. А проанализировать программу с помощью блоков - зачем? когда есть отладчики , да еще и достаточно интерактивные.
Так мнемонику и не надо запоминать только горячие клавиши. Час работы и ты их освоил. Ну к примеру mov EAX,EDX тождественно EDX->EAX и.т.д.
AS25 А как будет выглядеть команда RSQRTPS xmm1,xmm2 ? или например PUNPCKLQDQ xmm1, xmm2 ? Скажите: xmm1 -> xmm2 или так : xmm1 <- xmm2 или так : xmm2 <- xmm1 ? В общем над этим стоит подумать ) не говоря уж о командах SFENCE и тп
AS25 То есть еще из начек придумывать и запоминать надо... А его еще надо будет искать в списке всех значков ? Помоему у интела слишком много команд (такая архитектура CISC (хотя на самом деле там архитектура в архитектуре RISC в CISC обвернута , да не важно по сути)) . Команды сложные. Такая алгоритмическая система тока усложнит программирование. А вот для например ARM можно бы было такое придумать. Там чистый RISC. Но опять - зачем? Если мозг человека может запоминть X86_64 набор команд, что там ему запоминать набор команд ARM процессора ...
TermoSINteZ Проблема даже не столько в том, что команд много, сколько в их "неортогональности": в IA-32 слишком много правил и исключений из оных (например, все регистры "общего назначения" неравнозначны -- у каждого есть специфические функции). Запомнить все эти "фичи" действительно сложно. А вот, например, у VAX-11 таких проблем практически не было: исключений из правил было очень мало (а команд там побольше будет, если не считать SSE в IA-32).
Да у Intela команд много но Вы же не всеми пользуютесь. Те которые мало используюся или сложные можно оставить как есть в той форме мнемоники каккая у них сейчас. А вот остальные рекомендую изменить. Особенно это оносится к переходам и условиям так как они определяют ветвление алгоритма. Притом это избавляет от ненужных меток когда их в алгоритме становится очень много. И заканчивается фантазия как их назвать (начинаешь обзывать L00001, L00002 ....) а потом вспониаешь куда уходит алгоритм при определенном условии на L12345 или L12346. Ассемблер это теже значки но для машинного кода. В чем разница между одними значками и другими (подсказка ее нет). Это просто стериотип мышления. А стериотипы надо ломать они мешают жить. Надо что бы было удобно а не так что я привык и мне пофиг. Просто попробуйте написать программку на AlgorithmBuildere и Вы сразу поймете как это удобно.
Так действительно, есть же уже HiASM... Я как-то хотел на нем покодить, но очень уж неудобно в реале получается. Да и не по-дZенски это совсем.
HiAsm это модульный асемблер где каждый модуль уже запрограмирован. А здесь просто изменены мнемоники и обозначения команд. В итоге получается вполне читаемый глазом алгоритм.
Да без разницы. Главное, что на клаве набить пару нужных команд во много раз быстрее и эффективнее, чем щелкать мышью непонятно где, запоминать непонятно какие картинки, выставлять (и опять же запоминать) горячие клавиши. Где ты напасешь столько хоткеев, чтоб хватило хотя бы на частоиспользуемые инструкции? Вообщем идея достойная энтузиастов.