Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2015, 22:11   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Делфи. Ассемблеровский редактор кода + компиляция

Ребят, всем привет. Хочу создать программу, которая будет:

1) подсвечивать команды ассемблера
mov, add,sub,lea ...
Какой компонент лучше использовать, кроме TRichEdit..., я имел ввиду то, что возможно уже есть какой-нибудь адаптированный компонент под подсветку синтаксиса?

2) Второй вопрос в том, что есть TASM и TLINK, как сделать аналог команды, в командной строке:

tasm project.asm;
tlink project. obj?

при этом нужно учесть то, что при выполнении Tasm, если есть ошибки в синтаксисе или семантике в командной строке это отражается и выходит ошибка. Т.е. делфи проект должен уметь как-то ловить сигналы из cmd...

Грубо говоря система программирования

З.Ы. Очень важный, но не совсем по теме вопрос: а возможно ли сделать так, чтобы работа скомпилированного ехе-файла из машинного кода выполнялась не в командной строке, а в программе, т.е. как например на скрине, желательно чтоб список ошибок так же выводился не в командной строке, а, например, в Memo.

з.з.ы.: это мой курсовой, реально ли сделать его за месяц или лучше сразу брать задание проще?
Изображения
Тип файла: jpg hello.jpg (90.7 Кб, 109 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 09.10.2015, 00:09   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Думая над вопросом №1 пришел к выводу того, что:

1) нужно сформировать массив строк, который будет содержать все команды:
mov, lea, add,... в общем много, второй массив - имена регистров

потом при первом проходе от 0 до redact. count-1 искать совпадения в первой строки с mov и т.д., а второй раз ту же строку смотреть на имена регистров и выделять их цветом и т.д.

но очень медленно получится
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 09.10.2015, 08:55   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но очень медленно получится
Почему ты так решил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2015, 09:36   #4
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

1) Кроме TRichEdit, есть synedit.
2) Искать код для работы с именованными каналами.
CreatePipe, PeekNamedPipe у меня кода нет.
3)
Цитата:
потом при первом проходе от 0 до redact. count-1 искать совпадения в первой строки с mov и т.д., а второй раз ту же строку смотреть на имена регистров и выделять их цветом и т.д.
Если будешь делать сам, то разбиваешь текст на лексемы(слова, знаки пунктуации, числа, строки, комментарии). А после проверяешь слова является слово командой или нет. Просто ищешь в массиве простым циклом. А после если захочешь ускорить то хэш-таблицы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 09.10.2015, 09:48   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
есть synedit.
В Делфи?
Цитата:
Искать код для работы с именованными каналами.
Да, и это уже обсуждалось: http://www.programmersforum.ru/showthread.php?t=73794
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2015, 10:00   #6
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Да synedit есть для Delphi. Просто он идёт сторонним компонентом со своей лицензией.
http://sourceforge.net/projects/syne...e=typ_redirect
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.10.2015, 18:11   #7
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Я смотрел в сторону SynEdit, но вот в чем проблема, почему-то для D7 lite нет файла *.res и компонент не устанавливается, сейчас попробую поставить D2010 и установить компонент на него.
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 10.10.2015, 18:45   #8
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
Я смотрел в сторону SynEdit, но вот в чем проблема, почему-то для D7 lite нет файла *.res и компонент не устанавливается, сейчас попробую поставить D2010 и установить компонент на него.
D7 Lite запрещена установка сторонних компонентов, нужна pro или любая другая.
На отсутствие '*.res' не обращайте внимание - это штатное поведение.
Файл '*.res' не нужен. Компилятор сам его создаст на основе формы, и ряда других файлов. Просто файл '*.res' был удалён с целью обновления. А ошибку просто не смогли скрыть.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 10.10.2015 в 18:49.
Pavia вне форума Ответить с цитированием
Старый 10.10.2015, 19:06   #9
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Цитата:
D7 Lite запрещена установка сторонних компонентов, нужна pro или любая другая.
Ничего подобного, устанавливал и TMS Component Pack и другие компоненты, типа EffectButton

Ошибка вот какая: запуская из архива, из папки Packages пакет SynEdit_D7.dpk

Сразу открывается делфи и вот что выдается:
1) сначала ошибка, связанная с *.res
2) затем открывается окно, где пакет можно скомпилировать, но там третья ошибка, которая показана на скрине с редактором кода
Изображения
Тип файла: jpg 1.jpg (23.6 Кб, 19 просмотров)
Тип файла: jpg 2.jpg (57.6 Кб, 29 просмотров)
Тип файла: jpg 3.jpg (96.3 Кб, 125 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 10.10.2015, 19:29   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

лет 100500 назад я подобную IDE делал. еле откопал, чтобы скриншот сделать. Редактор, конечно, SynEdit, подсветка самодельная.

Цитата:
но там третья ошибка, которая показана на скрине с редактором кода
попробуй это.
Изображения
Тип файла: jpg 25.jpg (50.8 Кб, 122 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось Stilet; 11.10.2015 в 17:13.
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция кода без среды nibufep Общие вопросы Delphi 12 22.09.2015 08:53
Компиляция плюсового кода tiger() Qt и кроссплатформенное программирование С/С++ 1 13.07.2013 20:18
Динамическая компиляция кода. Sargonass C# (си шарп) 0 25.12.2011 18:57
Компиляция исходного кода vitekrock Общие вопросы по Java, Java SE, Kotlin 5 05.12.2010 21:24