Pull to refresh
0
@MacInread⁠-⁠only

User

5
Subscribers
Send message
Иметь более широкий спектр инструментов для решения задачи = быть более эффективным, быть впереди. Изучение php с каким-либо фреймворком на начальном уровне потребует недели вашего времени, а написание программ на нем будет идти быстрее просто в силу большей выразительности языка.
а результат в целом, все таки нельзя сделать на ЯВУ

Почему?

Есть ли куски кода, критичные по скорости или размеру, которыми вы гордитесь в силу применения нестандартных решений, до которых не может дойти компилятор, для расширения моего кругозора?


И прерывание, бодренько вклинившееся в эмулируемую очередь инсрукций — распишет авторский продукт по всем испостясям.
Либо потребует кажный разик enable/disable int.

Строго говоря, прерывание тоже может быть реализовано по-разному, например, как регистр, проверяемый перед выборкой очередной команды.
А что, по-Вашему, значит, что у «процессора есть стек»?

В контексте разговора выше — аппаратная реализация.

Основное назначение стека — хранение адресов возврата из процедур и прерываний, т.е. аппаратная поддержка рекурсивности вызовов, call, ret и iret (или их аналоги).

Это может быть микропрограммная реализация, а не аппаратная. Со стороны машинного языка будет выглядеть идентично.
Продвинутый макроассемблер (с).
Теперь, программировать придется только когда понадобится новую функциональность добавлять.

Здесь «собака и порылась». Расширять/править php дешевле.

А мне на ассемблере дешевле, потому что я ассемблер знаю, а js/php нет

В данный момент — да, но если изучить php, то вы быстро отобьете время, на это потраченное, и улетите вперед по сравнению с собой же старым.
Похвальный подход, вызывает уважение. Ради интереса посмотрел несколько файлов вашей CMS — это именно шаблонные вещи, вида «обнулим этот блок, скопируем отсюда указатель на стек, конкатенируем в буфер вот эти строки». Это по сути ничем от кода, сгенерированного компилятором, не отличается, разве что старый теплый ламповый трюк с флагом переноса радует. Есть ли куски кода, критичные по скорости или размеру, которыми вы гордитесь в силу применения нестандартных решений, до которых не может дойти компилятор, для расширения моего кругозора?
Идейная простота ассемблера вовсе не подразумевает простоту использования его в качестве языка программирования

Обычная путаница между «сложно» и «тяжело». Сложно научиться управлять экскаватором, а копать — легко. Копать лопатой — просто и тяжело.
Половина этих оптимизаций компилятором gcc/msvc делается.
Если это неответственный участок кода — да. А так лишнее обращение к памяти не может быть бесплатным, особенно если в промежутке кеш вымывается.
На новых — не знаю, а у 7ки было много бесполезного жонглирования регистрами. Вроде такого:

mov ebx, [ebp + 8]
mov eax, [ebx + 32]

mov ebx, [ebp + 8]

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

Забавно, что не уточнялось, о каком именно мнемокоде идет речь.

Я не пишу Open Source ПО, уж извините. Все, что пишется по работе, включая куски на ассемблере, закрыто. В моем любительском активе — любительская ОС на ассемблере, а также отдельный язык ассемблера, реализованный в моем микрокоде для моей модели процессора своей архитектуры.

В конце концов, я программы на ассемблере пишу постоянно и публикую в сети

Это не показатель хорошего знания. Можно уметь играть в шахматы, но не уметь выигрывать. Надеюсь, аналогия ясна? Закодировать в мнемокоде простыней какой-либо алгоритм, даже большой, уровня CMS-IDE по шаблонам могут многие (например, самый примитивный кодогенератор самого примитивного компилятора ЯВУ), это не то, что называется «знать ассемблер».
Я могу посмотреть ваши исходные тексты, проблема лишь в том, что критика с моей стороны будет наверняка заведомо воспринята как «а ты кто?», а это скучно.
Архитектура комманд или архитектура процессора? Архитектура комманд — предполагает, процессора — нет. Это может быть микропрограмма вида
Пересылка из регистра S в регистр адреса
Пересылка из регистра Х в регистр данных
Строб записи
Пересылка константы 4 в регистр-защелку
Пересылка регистра S в регистр-защелку
Сложение
Пересылка результата АЛУ в регистр S
Работа процессора непосредственно завязана на понятие стека.

Нет. Стек — это абстракция. Есть кристаллы с аппаратным стеком, но это не нечто сущее.
А вот и да. Это верно и при неменяющейся производительности, просто в силу наличия разных платформ.

Так что учите ассемблер. Пригодится.

Сбавьте тон, не красит. Не уверен, что вы знаете его лучше меня.
Люди не будут ждать, пока напишут «такую же, но без пуговиц». Надо здесь и сейчас. Поэтому переносимая программа — отличная. А привязанная к железу — посредственная. Критерий другой.
Это опять же абстракция уровня микропрограммы, а не железа. Так-то можно микропрограммную ЛИСП машину написать.
Потому что код под 8086 не пойдет на Itanium как ни танцуй с бубном. И под Win32 на x86 без 8086VM тоже
Ок. Проблема только в том, что программа на ассемблере под ДОС не будет работать вовсе. Никакая — ни простая, ни сложная.
Некоторые даже считают что In 9 years Assembler will return to mainstream.

Это просто тупо мнение гражданина в его блоге. Без каких-либо доводов. Не считать же доводом «ассемблер будет нужен, потому что нужна высокая производительность». И так понятно, что есть места, где он нужен.

Information

Rating
Does not participate
Registered
Activity