|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.04.2010, 08:58 | #31 |
Форумчанин
Регистрация: 02.04.2010
Сообщений: 104
|
Вот пара примеров для FASM.
Но это только идея языков программирования, без дополнительных парсеров, трансляторов и прочего... |
03.04.2010, 13:42 | #32 | |
Форумчанин
Регистрация: 23.02.2010
Сообщений: 107
|
Цитата:
При конструкциях вида: PRINT 1 PRINT 2 PRINT 3 PRINT 4 PRINT 5 Исполнимый файл излишне раздувается. Последний раз редактировалось Indian; 03.04.2010 в 15:32. |
|
03.04.2010, 17:21 | #33 |
Форумчанин
Регистрация: 02.04.2010
Сообщений: 104
|
Я привел лишь идею построения синтаксиса
языков программирования при помощи макросов и всего... А задачи построения оптимального языка кодирования я и не предлагал. Насчет переходов стартовый переход есть во всех типах файлов от MZ до РЕ , только он не ставится в исходнике а скрыт в компиляторе. И не один бесконечный цикл не обходится без них. А печать по одному символу, ну напиши макрос на печать с форматированием... Язвить и критиковать и я умею... |
03.04.2010, 21:31 | #34 | ||
Форумчанин
Регистрация: 23.02.2010
Сообщений: 107
|
Цитата:
Цитата:
Я не язвил и не критиковал вовсе. А привел дополнение к использованию самих макросов FASM'а, тем самым приведя их недостаток, хотя, отчасти, и преимущество. Хотя бы на тот случай, если вы или кто-нибудь другой всерьез ими займется. Препроцессор на месте вызова макроса вставляет всё его тело. Конструкция: PRINT ab PRINT abc PRINT abcd PRINT abcde PRINT ghjk Транслируется в одни и те же инструкции 5 раз подряд(я не про ваш код), неоправданно увеличивая размер исполнимого файла. Тогда как можно сделать в теле макроса переход на метку с инструкциями вне его. Это эмуляция процедур, с использованием возможностей макросов. К тому же в FASM'е, под DOS и Linux, директива proc, насколько я знаю, отсутствует. Есть неофициальная версия для DOS: http://board.flatassembler.net/topic.php?p=40011#40011 Вопрос в том как указать глобальный переход на метку внутри макроса(т.е. возврат), с учетом того, что его вызовов может быть несколько. Реализацию этого, по моему мнению, можно найти в proc16.inc(см. ссылку)/proc32.inc, ведь сам proc является макросом. Возможно, это позволило бы использовать замену процедур, без привязки к архитектуре. |
||
04.04.2010, 09:33 | #35 |
Форумчанин
Регистрация: 02.04.2010
Сообщений: 104
|
Можно использовать при помощи макросов любой вариант соглашений о вызовах в том числе и процедурный и сишный и паскалевский .Я привел этот вариант из соображений оптимизации не длины программного кода, а скорости их выполнения.Этим приемом пользуется большинство SCADA систем и графических языков прогаммирования.Они препочитают линейную структуру программ , без большого количества обращений к стеку и многочисленных условных переходов.Причина проста: Памяти у современных компьютеров предостаточно, а большинство задач требует увеличения скорости исполнения алгоритма.Поэтому оптимизация производится с целью уменьшения времени исполнения.
Но вообще говоря , это мой подход в силу специфики решаемых задач. Вы же можете построить для своего использования макросы процедурного типа или обьектно-ориентированного... |
04.04.2010, 17:34 | #36 | |
Форумчанин
Регистрация: 09.11.2009
Сообщений: 669
|
Цитата:
Код:
Код:
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли |
|
05.04.2010, 06:46 | #37 |
Форумчанин
Регистрация: 02.04.2010
Сообщений: 104
|
С уважением отношусь к продуктам BOLAND и Mikrosoft,
но попробуйте написать элементарную программу вывода прямоугольных импульсов частотой килогерц 100..200 непрерывно в обычный LPT port c выходом из программы не по сбросу или выключению питания,а по любой клавише клавиатуры... Вы поймете какой реально нужен язык программирования и операционная система... |
05.04.2010, 09:16 | #38 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Qnx? Ваше сообщение слишком короткое. Оно должно быть не менее 10 символов.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
05.04.2010, 10:18 | #39 |
Форумчанин
Регистрация: 02.04.2010
Сообщений: 104
|
C чувством юмора в порядке !!! Но QNX в лучших чувствах даст килогерц 50 не более...
|
05.04.2010, 10:59 | #40 | |
ios developer
Старожил
Регистрация: 16.11.2007
Сообщений: 2,885
|
2Alar
Цитата:
2Gnumko Я бы порекомендовал начать с изучения русского языка.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Есть такой язык программирования Autolisp | Эdvard | Помощь студентам | 6 | 25.04.2008 16:28 |
Язык программирования Turbo Pascal | AnKS | Помощь студентам | 2 | 28.10.2007 07:22 |
Новый язык программирования: AWL | G_D_G | Свободное общение | 0 | 27.02.2007 14:10 |