|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Кроссассемблеры для 8080?
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да это и со стороны пользователя не очень актуально, но с точки зрения автора ассемблера
вопрос озадачивает...
Поскольку я сейчас переделываю упомянутый выше ассемблер под новые изменения в
системе команд, - меня этот вопрос и озадачил...
У меня есть исходные коды ассемблеров " Микрон" и " Асм_МХ" " Специалиста", в них
я не нашел признаков ограничения, но еще в одном исходнике ассемблера нашел, что
вложение ограничено 8-ю знаками...
Если превысить, то выдается ошибка:
Я, честно говоря, считаю, что 8 операций в строке аргумента более чем достаточно,
так что, вероятно, остановлюсь на этом числе...
_________________ iLavr
|
20 Jan 2013 11:20 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Попалась мне тут целая коллекция ассемблеров...
A Collection of CPM and MSDOS based 8080/Z80/8086 Assemblers
К сожалению, мне ни один не знаком...
_________________ iLavr
|
21 Jan 2013 17:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А ни у кого нет случаем корректно дизассемблированного исходника ASM "Микрон"?
Так не охота его декомпилировать в отпуске... а вопрос порешать бы надо, пока время есть...
_________________ iLavr
|
11 Jul 2014 22:40 |
|
|
esl
Writer
Joined: 23 May 2006 13:40 Posts: 24
|
Попался тут zmac
Он умеет .8080
http://members.shaw.ca/gp2000/beamhack3.html
Впечалило пару забавных функций типа подсчёта тактов
И возраст исходника
|
12 Jul 2014 13:34 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да у меня проблема с обработкой строк, включающих простые выражения, содержащие
сложение, вычитание, скобки и т.д. ...
Если бы сориентироваться на что-то конкретное, я бы и сам уже написал.
Но пока сошлись во мнении, что стандарт - это ассемблер "Микрон", который
обрабатывает строку в 63 символа, каким бы там ни было математическое выражение.
Поскольку в описаниях Ассемблеров об этом говорится вскользь и неявно - хотел выяснить
общее правило на этот счет хотя бы по исходнику.
_________________ iLavr
|
12 Jul 2014 13:48 |
|
|
esl
Writer
Joined: 23 May 2006 13:40 Posts: 24
|
не понял вопроса, вроде это zmac нормально с арифметикой работает
и
|
13 Jul 2014 06:48 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да я понимаю, что многие из них "нормально с арифметикой работают".
Мне нужно ориентировочное правило для понятия "нормально".
То есть, если у меня в строке есть арифметические выражения, какова их примерная
сложность и уровень вложения?
Ну, скажем, я пишу:
какой сложности может быть это выражение в принципе?
_________________ iLavr
|
13 Jul 2014 11:02 |
|
|
esl
Writer
Joined: 23 May 2006 13:40 Posts: 24
|
| | | | Lavr wrote: Да я понимаю, что многие из них "нормально с арифметикой работают". Мне нужно ориентировочное правило для понятия "нормально". То есть, если у меня в строке есть арифметические выражения, какова их примерная сложность и уровень вложения? Ну, скажем, я пишу: какой сложности может быть это выражение в принципе? | | | | |
ээ, если речь идёт именно про КРОС, то любой имхо
памяти у кросс платформы хватит то ...
|
13 Jul 2014 14:57 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну это мы сейчас по 2-му кругу пойдем: сначала " любой", а потом - " спроси у автора"...
Когда начинаешь проверять отдельный экземпляр ассемблера, то получается, что и " не любой".
Я брал этот Pretty 8080 assembler за образец того, что мне надо, по ряду причин.
Ну и мне как-то уж поднадоело делать тесты, смотря в исходник и проверяя, где ассемблер выдаст ошибку.
Поэтому я и решил к каким-то границам всё свести - мы здесь пришли к выводу, что можно считать "Микрон"
за некий "стандарт".
Ну хотя бы - безошибочное математическое выражение в 63 символа что-ли... как-то так...
_________________ iLavr
|
14 Jul 2014 04:32 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Lavr, я вот как то упустил эту тему раньше, так как регулярно пропадаю на несколько месяцев в году. По моим воспоминаниям, чаще всего длину строки операндов никто не делал больше 255 байт, чаще всего даже меньше. Множество ассемблеров длину операндов ограничивало длиной строки экрана - 80, 64 или даже 32 байта.
Про сложность конструкций всё ещё проще - в нормальном виде там строится бинарное дерево, под него обычно выделен определённый буфер, выход за пределы буфера - ошибка, но размер буфера задавали с небольшим запасом с учётом максимальной длины строки операндов.
|
11 Dec 2015 20:47 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну мне в этом случае нужна точна конкретика и я объясню почему на примере. Скажем, я под "Специалистом" программирую 2 канал таймера на деление 2 МГц до 100 Гц. Удобно это сделать, на мой взгляд, так: Видно, где я удобно заюзал арифметику в аргументах. Но ASM "Специалистa" это не скомпилирует - нет у него деления, к сожалению... Поскольку компиляторы с ASM-а я писать умею, хотелось бы в этом вопросе тоже прийти к некоторому стандарту. P.S. Я в общем-то и сам в теории знаю про "дерево", "рекурсивный спуск" и "обратную польскую запись". Как мы тут договорились, пусть максимальная длина строки будет 64 символа. А за образец алгоритма я взял исходник Pretty 8080 Assembler - он вроде как хорошо это делает. Ну и когда я разбирал его алгоритм, выяснил, что он чутка лажает, я написал автору - тот ответил, что да, есть такой момент... Ну и у меня всё так и осталось нерешенным...
_________________ iLavr
|
12 Dec 2015 08:28 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот здесь довольно неплохая статья попалась: Алгоритмы работы АссемблеровУ неё, правда, нет списка заголовков, и передвигаться по статье надо с помощью стрелок... По интересующему меня вопросу там, правда, сказано немного:
_________________ iLavr
|
13 Dec 2015 14:24 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22664 Location: Silicon Valley
|
Да каждый автор делает как хочет т.к. это не имеет отношения к ассемблеру как таковому...
|
13 Dec 2015 14:47 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ага... ну да, только "в среднем по больнице" наблюдается некая совместимость и общность. Ну и я, как отдельно взятый "каждый автор" хочу один раз сделать по неким "правильным правилам". К этому, как показывает поиск, склоняются все авторы - сначала пишут "как хотят" - "в лоб", потом замечают, что этот их алгоритм неэффекивен, и начинают искать, а что же советуют по этому поводу профильная литература? И выясняют, что только что прошлись по граблям, по которым уже прошли многие, зачем-то, преодолевая трудности, изобрели давно изобретенный велосипед. И имеет это отношение не только к ассемблеру, как таковому, но и к трансляторам с многих других языков... А " как хочет" это ты подразумеваешь " линейный алгорим"? Я лично наблюдаю, что большинство авторов, в том числе, пишущих об этом статьи, предпочитают " рекурсивный спуск". P.S. А "правильные правила" по интересующему меня вопросу я сегодня нашел, хотя и потратил пол-выходного. Теперь дело за тем, чтобы применить их в своих исходниках и заодно посмотреть, применяли ли их авторы известного пакета "Микрон" и их последователи, или они писали всё же свой код по методу кто "как хочет"...
_________________ iLavr
Last edited by Lavr on 13 Dec 2015 15:46, edited 1 time in total.
|
13 Dec 2015 15:17 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22664 Location: Silicon Valley
|
просто вычисление на стеке с учётом приоритета операций и раскрытием скобок вот как это делал я в конце 90х в своём компиляторе RW1: http://nedopc.cvs.sourceforge.net/viewvc/nedopc/src/rw1c/rw1_expr.c?revision=1.1.1.1&view=markup
|
13 Dec 2015 15:40 |
|
|
Who is online |
Users browsing this forum: No registered users and 3 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|