Более удобное представление ассемблера...
От: Shmj Ниоткуда  
Дата: 30.10.25 07:46
Оценка:
Вот ранее был типа High-Level Assembler:

mov( ebx, eax );
add( 4, eax );
if( eax > ebx ) then
    stdout.put("eax > ebx", nl);
endif;


А если еще умнее, типа:

let ebx = eax;
let eax = eax + 4;


Вроде чел. делал такой проект, кто помнит?
=сначала спроси у GPT=
Отредактировано 30.10.2025 7:46 Shmj . Предыдущая версия .
Re: Более удобное представление ассемблера...
От: alpha21264 СССР  
Дата: 30.10.25 08:47
Оценка: +3
Здравствуйте, Shmj, Вы писали:

S>Вот ранее был типа High-Level Assembler:

...
S>А если еще умнее, типа:

S>
S>let ebx = eax;
S>let eax = eax + 4;
S>


S>Вроде чел. делал такой проект, кто помнит?


А зачем? Языки высокого уровня придуманы в 1960-х годах.
И если ты сейчас пишешь на ассемблере, то и пиши на ассемблере.

PS.
Ассемблер DEC VAX был весьма высокоуровневым.
И... нормально переносился на Альфу — процессор совершенно другой архитектуры.

Течёт вода Кубань-реки куда велят большевики.
Re: Более удобное представление ассемблера...
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 30.10.25 09:14
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Вот ранее был типа High-Level Assembler:


Это грубый, неэффективный и тупиковый путь. Годится лишь для упертых фанатов ассемблера. Гораздо эффективнее добавлять доступ к процессорным регистрам и командам в "низкоуровневые ЯВУ" вроде C.
Re: Более удобное представление ассемблера...
От: ononim  
Дата: 30.10.25 10:17
Оценка:
такое знаю https://v8.dev/blog/csa
Как много веселых ребят, и все делают велосипед...
Re: Более удобное представление ассемблера...
От: SergeyIT Россия  
Дата: 30.10.25 11:45
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>А если еще умнее, типа:


S>
S>let ebx = eax;
S>let eax = eax + 4;
S>


S>Вроде чел. делал такой проект, кто помнит?


Так это Basic...
Извините, я все еще учусь
Re: Более удобное представление ассемблера...
От: BlackEric http://black-eric.lj.ru
Дата: 30.10.25 17:29
Оценка: +1
Здравствуйте, Shmj, Вы писали:

По состоянию на 2025 год я бы ассемблером высокого уровня назвал С. Ну или хотя бы С отнес к языкам среднего уровня. Потому что считать, что С, C#, Java и Python являются языками одного уровня я бы не стал.
Получается по уровням от низкого к высокому что-то вроде
1. Assembler
2. C, возможно JavaScript
3. C#, Java, Python, TypeScript.
https://github.com/BlackEric001
Re: Более удобное представление ассемблера...
От: hi_octane Беларусь  
Дата: 30.10.25 20:24
Оценка: +1
S>Вроде чел. делал такой проект, кто помнит?
Был проект С-- (си минус минус) — пишешь почти на C, но в тоже время на асме. Я писал на нём всего пару прог, но ощущение было "как инструмент под задачу пушкабомба". Получалась просто золотая середина между близким к железу и обычным программированием.
Re: Более удобное представление ассемблера...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 31.10.25 16:16
Оценка: 5 (3) +1
Здравствуйте, Shmj, Вы писали:

S>let eax = eax + 4;


https://github.com/torvalds/linux/blob/master/arch/hexagon/kernel/head.S
The God is real, unless declared integer.
Re: Более удобное представление ассемблера...
От: kov_serg Россия  
Дата: 01.11.25 06:04
Оценка: 6 (3) +1
Здравствуйте, Shmj, Вы писали:

S>А если еще умнее, типа:


https://en.wikipedia.org/wiki/Blackfin
https://microsin.net/programming/dsp/blackfin-instruction-set-reference-part1.html
https://microsin.net/programming/dsp/blackfin-instruction-set-reference-part2.html
Re[2]: Более удобное представление ассемблера...
От: Pauel Беларусь http://blogs.rsdn.org/ikemefula
Дата: 05.11.25 08:19
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Получается по уровням от низкого к высокому что-то вроде

BE>1. Assembler
BE>2. C, возможно JavaScript

Интересная штука, у меня переход на JS вызвал ровно те же ощущения, как в далёком детстве при переходе с Паскаля на Ассемблер. Везде за всем надо следить и тд.
Re[2]: Более удобное представление ассемблера...
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 05.11.25 08:51
Оценка:
Здравствуйте, netch80, Вы писали:

N>https://github.com/torvalds/linux/blob/master/arch/hexagon/kernel/head.S

А можете дать ссылку на описание этой нотации?

По расширению имени файла я предположил было, что это GNU-нотация для ассемблера, но она (как я посмотрел) все же ближе к традиционной <мнемоника>+<операнды>, там отличие от того же Intel в некоторых деталях синтаксиса.

А больше я с ходу не нашел ничего (а выглядит реально интересно).
Re: Более удобное представление ассемблера...
От: CRT  
Дата: 05.11.25 21:27
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вот ранее был типа High-Level Assembler:


S>
S>mov( ebx, eax );
S>add( 4, eax );
S>if( eax > ebx ) then
S>    stdout.put("eax > ebx", nl);
S>endif;
S>



S>Вроде чел. делал такой проект, кто помнит?


это не ассемблер. Ассемблер это машинные команды просто представленные в более удобном для восприятия виде. То есть команда ассемблера = машинная команда.
Re[2]: Более удобное представление ассемблера...
От: Shmj Ниоткуда  
Дата: 06.11.25 04:38
Оценка:
Здравствуйте, CRT, Вы писали:

CRT>это не ассемблер. Ассемблер это машинные команды просто представленные в более удобном для восприятия виде. То есть команда ассемблера = машинная команда.


А если немного синтаксического сахара? К примеру — метки с человеческим именем — ведь в машинных кодах это просто номер ячейки памяти. Далее — если вместо mov( ebx, eax ); — написать let ebx = eax; — что поменялось? Это тоже команда, просто в более удобном для восприятия виде.
=сначала спроси у GPT=
Re[2]: Более удобное представление ассемблера...
От: Shmj Ниоткуда  
Дата: 06.11.25 04:45
Оценка: +1
Здравствуйте, alpha21264, Вы писали:

A>А зачем? Языки высокого уровня придуманы в 1960-х годах.

A>И если ты сейчас пишешь на ассемблере, то и пиши на ассемблере.

Это и есть ассемблер — ты не уходишь от регистров. На ЯВУ — нет прямого доступа к регистрам.

Просто чуть другой формат записи и немного синтаксического сахара.
=сначала спроси у GPT=
Отредактировано 06.11.2025 4:47 Shmj . Предыдущая версия .
Re[2]: Более удобное представление ассемблера...
От: Shmj Ниоткуда  
Дата: 06.11.25 04:45
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Это грубый, неэффективный и тупиковый путь. Годится лишь для упертых фанатов ассемблера. Гораздо эффективнее добавлять доступ к процессорным регистрам и командам в "низкоуровневые ЯВУ" вроде C.


Т.е. ассемблерные вставки? Еще хуже когда намешано.
=сначала спроси у GPT=
Re[2]: Более удобное представление ассемблера...
От: Shmj Ниоткуда  
Дата: 06.11.25 04:46
Оценка:
Здравствуйте, SergeyIT, Вы писали:

SIT>Так это Basic...


В Basic нет прямого доступа к регистрам.
=сначала спроси у GPT=
Re[2]: Более удобное представление ассемблера...
От: AWSVladimir  
Дата: 06.11.25 04:54
Оценка: :)
Здравствуйте, hi_octane, Вы писали:

S>>Вроде чел. делал такой проект, кто помнит?

_>Был проект С-- (си минус минус) — пишешь почти на C, но в тоже время на асме.

Зачем?
Макроассемблером вполне можно писать как на высоком языке программирования.
Re[3]: Более удобное представление ассемблера...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.11.25 08:52
Оценка: 2 (1)
Здравствуйте, Михаил Романов, Вы писали:

N>>https://github.com/torvalds/linux/blob/master/arch/hexagon/kernel/head.S

МР>А можете дать ссылку на описание этой нотации?

Из статьи про hexagon есть ссылки на всякое про ISA.

МР>По расширению имени файла я предположил было, что это GNU-нотация для ассемблера, но она (как я посмотрел) все же ближе к традиционной <мнемоника>+<операнды>, там отличие от того же Intel в некоторых деталях синтаксиса.


Это действительно ассемблер, просто некоторые из них сделаны чуть более похожими по стилю на C. Названный в соседнем постинге Blackfin ещё ближе к этому (я его сходу не нашёл, но помнил; вспомнил бы сразу, запостил бы про него, а не Hexagon). Вот понравилось кому-то делать ассемблер в другом стиле — не словесные мнемоники, а знаки.
The God is real, unless declared integer.
Re[3]: Более удобное представление ассемблера...
От: Shmj Ниоткуда  
Дата: 06.11.25 09:59
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

N>>https://github.com/torvalds/linux/blob/master/arch/hexagon/kernel/head.S

МР>А можете дать ссылку на описание этой нотации?

Всезнайка ответило:

Короткий ответ: это синтаксис ассемблера Qualcomm Hexagon (QDSP6)

https://docs.qualcomm.com/bundle/publicresource/topics/80-N2040-60/instructions.html

=сначала спроси у GPT=
Re[3]: Более удобное представление ассемблера...
От: Privalov  
Дата: 06.11.25 12:56
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Т.е. ассемблерные вставки? Еще хуже когда намешано.


Я в своё время использовал встроенный ассемблер. В реальном режиме было очень удобно. Не надо было сильно париться с моделями памяти. И о правильной передаче аргументов не надо было думать.
Только, как и с любым другим инструментом, нужно включать голову при использовании. За беспорядочное использование встроенного ассемблера надо руки отрывать. Как сегодня за беспорядочное использование dynamic в Шарпе.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.