Ассемблеры

Все о разработке ПО для ПК-01,02 "Львов" на современных платформах
sas9568635
Posts: 372
Joined: 20 Apr 2012, 16:00
Location: Конотоп

Ассемблеры

Post by sas9568635 »

Вот начал писать ассемблер…,
под свой дизассемблер. :-)
Почитал и сделал вырезки из книги С.Н.Текотев «ОТ БЕЙСИКА К АССЕМБЛЕРУ»
Начал писать основываясь на ней. Есть какие-то мысли по этому поводу? Может лучше от другой книги отталкиваться ? Какой ? Где скачать?

Понял что многое реализовать не стоит да и заморочливо. Например нужно ли делать
Вот это …
H, h, $ - 16-ричная система,
@ (отсутствие спецификатора) - десятичная система,
B, b, % - двоичная система.
Если число в 16-ричной системе начинается с буквы, слева от нее должен быть дописан 0 (при спецификаторе H).
…Если можно для шестнадцатиричной системы использовать только «$» в начале числа, а для десятичной вообще без спецификатора… (идет расчет на то, чтобы поменьше по клавиатуре бахкать, во время набирания систем исчисления).
Стоит ли делать "понимание" двоичной системы исчисления ?
%include f1.asm - помощью данной команды в исходный текст будет вставлен текст из файла f1.asm.
Это вроде тоже не стоит делать, так как гараздо лучше и проще при наших то современных текстовых редакторах (да и маленькой памяти Львова) все в одни файл «собрать до кучи» и единым файлом компилировать…
Директивы
end - определяет логический конец программы, все записанное после нее не будет восприниматься транслятором,
seg - определяет начало новой секции
.....
Тоже сомневаюсь что такие размахи нужны для маленькой памяти Львова…

И самое главное:
Нужно ли делать чтобы компилятор понимал одинаково вот такое:
MOV A, B
MOVA,B
MOV A , B
MOV A B
MOVAB
MOV AB
MOVA B
И еще как-то там…
Наверное все таки нужна жесткость для написания команд. Чтобы развивалась культура в их написании..
У кого будут какие предложения и пожелания…
sas9568635
Posts: 372
Joined: 20 Apr 2012, 16:00
Location: Конотоп

Post by sas9568635 »

Что-то глухо с пожеланиями... видимо не очень то он кому-то нада...
Называеться напиши как напишешь ... для себя и забудь...
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Post by liberation »

sas9568635 wrote:Что-то глухо с пожеланиями...
В разработке можно ориентироваться на описание Макроассемблера от Microsoft для CP/M80 (раздел " 2.2. Макроассемблер - MAC"). Вещь была действительно стоящей для кодинга. :)
Carthago delenda est, Carthaginem delendam esse
sadfsdfsdaf
Posts: 227
Joined: 07 Dec 2010, 16:54

Re: Ассемблеры

Post by sadfsdfsdaf »

пожелания? так вопросы не слишком серьёзные. я не вижу проблемы реализовать сразу всё, что упоминалось (системы счисления, форматирование и т.п.). вопрос в целевом применении - старые трансляторы (из cpm) доступны (сейчас они могут быть нужны по соображениям совместимости, если у кого старые листинги остались), новые (для своих нужд) - они пишутся за пару часов, пример:
берём отсюда
http://www.mmnt.net/db/0/0/filer.cg.ukr ... ming/Forth
книгу Баранова и Ноздрунова "Язык Форт и его реализации"
ftp://filer.cg.ukrtel.net/DoC/programmi ... -1988.djvu
страница 124
Реального кода - пара экранов текста.

Из теории могу посоветовать вот эту книгу: http://linker.iecc.com/

P.S. если кому M80 нужен
http://www.s100computers.com/Software%2 ... ection.htm
из современного - поддержка в gcc (binutils) должна быть.

так что - компилятор должен быть в чём-то "особенным".
sas9568635
Posts: 372
Joined: 20 Apr 2012, 16:00
Location: Конотоп

Re: Ассемблеры

Post by sas9568635 »

http://sas.forumbb.ru/viewtopic.php?id=286
Новые версии Дизассемблера и Ассемблера (в одном архиве "DisasmLV1_4 & AsmLV1_0b.7z").
Прошу любить и жаловать… :-)
В ассемблере пока не реализовано «понимание меток». В окончательной версии программы конечно это будет реализовано.
Также окончательные версии Дизассемблера и ассемблера будет реализованы в трех видах: обычный(как сейчас), Консольный (Console) и Графический пользовательский интерфейс (GUI)
sas9568635
Posts: 372
Joined: 20 Apr 2012, 16:00
Location: Конотоп

Re: Ассемблеры

Post by sas9568635 »

sadfsdfsdaf wrote: так что - компилятор должен быть в чём-то "особенным".
Незачем. У меня более грандиозные цели см.тему DprToLvt (PasToLvt) http://lvovpc.ho.ua/forum/viewtopic.php?f=4&t=153#p1663
sadfsdfsdaf
Posts: 227
Joined: 07 Dec 2010, 16:54

Re: Ассемблеры

Post by sadfsdfsdaf »

sas9568635 wrote:
sadfsdfsdaf wrote: так что - компилятор должен быть в чём-то "особенным".
Незачем. У меня более грандиозные цели см.тему DprToLvt (PasToLvt) http://lvovpc.ho.ua/forum/viewtopic.php?f=4&t=153#p1663
промежуточное текстовое представление? ну, не вопрос, а почему не SSA ? почему не триады ? кстати, будет ли реализован "супероптимизатор" ? ещё было бы неплохо добавить монады и ленивые вычисления....
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Ассемблеры

Post by liberation »

sadfsdfsdaf wrote:промежуточное текстовое представление? ну, не вопрос, а почему не SSA ? почему не триады ? кстати, будет ли реализован "супероптимизатор" ? ещё было бы неплохо добавить монады и ленивые вычисления....
Запахло то ли Лиспом, то ли вообще Хаскеллом... Не слишком ли это для ПК-01? Хотя бы теоретически это возможно реализовать на столь скромном железе?
Carthago delenda est, Carthaginem delendam esse
sadfsdfsdaf
Posts: 227
Joined: 07 Dec 2010, 16:54

Re: Ассемблеры

Post by sadfsdfsdaf »

liberation wrote:Запахло то ли Лиспом, то ли вообще Хаскеллом... Не слишком ли это для ПК-01? Хотя бы теоретически это возможно реализовать на столь скромном железе?
Теоретически как раз легко, тем более, что уже было в разное время реализовано: http://www.artinfo-musinfo.org/en/issues/vlisp/8en.html
sas9568635
Posts: 372
Joined: 20 Apr 2012, 16:00
Location: Конотоп

Re: Ассемблеры

Post by sas9568635 »

sadfsdfsdaf wrote: промежуточное текстовое представление? ну, не вопрос, а почему не SSA ? почему не триады ? кстати, будет ли реализован "супероптимизатор" ? ещё было бы неплохо добавить монады и ленивые вычисления....
???!!! Извените, но я что-то очень слабо понимаю написанное...
мне незнакомы термины "SSA", "не триады", "Superoptimization","монады", "ленивые вычисления"...
я конечно смотрел в Вики, но все равно очень плохо понял что это такое "SSA", "не триады", "монады", "Superoptimization" - это описание вообще на англ., я слабо знаю англ....
sas9568635
Posts: 372
Joined: 20 Apr 2012, 16:00
Location: Конотоп

Re: Ассемблеры

Post by sas9568635 »

liberation wrote: Запахло то ли Лиспом, то ли вообще Хаскеллом... Не слишком ли это для ПК-01? Хотя бы теоретически это возможно реализовать на столь скромном железе?
???!!! Мне незнакомо... "Лиспом" "Хаскеллом"...
sas9568635
Posts: 372
Joined: 20 Apr 2012, 16:00
Location: Конотоп

Re: Ассемблеры

Post by sas9568635 »

b2m, вопрос: а первый столбец который «строка» это он равен (кол-ву команд) текущей команде?...
Или он равен номеру строки исходного асм-файла?
Если он равен строке исходного асм-файла, то как быть с «пустыми строками» типа ВВОД, ВВОД, ВВОД и как быть со строками с комментариями (1-й символ = «;»), а также мой асм задумывался что может понимать несколько команд в строке подобно = «XRA A OUT $C2 LXI D, $8BC0 LHLD $8040 MVI B, $10» (правда сейчас он почему-то это не понимает, а должен бы понимать..:-), но задумка такая была…
Как с этим быть?
b2m
Posts: 115
Joined: 29 Mar 2012, 21:35
Contact:

Re: Ассемблеры

Post by b2m »

sas9568635 wrote:Или он равен номеру строки исходного асм-файла?
Да, номер строки исходного асм-файла.
sas9568635 wrote:Если он равен строке исходного асм-файла, то как быть с «пустыми строками» типа ВВОД, ВВОД, ВВОД и как быть со строками с комментариями (1-й символ = «;»)
Так-же как и с непустыми, т.е. нумеровать дальше. На самом деле этот номер не используется эмулятором. Но это общепринятый формат листинга.
sas9568635 wrote:также мой асм задумывался что может понимать несколько команд в строке подобно = «XRA A OUT $C2 LXI D, $8BC0 LHLD $8040 MVI B, $10» (правда сейчас он почему-то это не понимает, а должен бы понимать..:-), но задумка такая была…
Как с этим быть?
Очень просто - выдавать в качестве кодов коды всех команд подряд, а строка исходного файла так и останется, как была.
b2m
Posts: 115
Joined: 29 Mar 2012, 21:35
Contact:

Re: Ассемблеры

Post by b2m »

sas9568635 wrote:Дак если метки пока не реализованы... то без меток прямые адреса можно? Иль это только когда метки реализую..
То, что стоит после кодов - это строка исходного файла, что там написано, то и будет отображаться. Любой текст.
sas9568635 wrote:слушай, а может сделать так, чтобы асм "заганял" ассемлируемую прогу в твой EMU-формат, но не запускал
Что-то как-то сложно. Хотя я ничего не имею против. Берёшь в качестве шаблона записанный эмулятором файл, и изменяешь нужные байты памяти. Другое дело, что смещение может измениться, если изменить конфиг. Там в .emu весь обработанный конфиг хранится, плюс состояние компонентов конфига.
sas9568635 wrote:Ну и ... что я вижу, ожидает открытие какого файла?... пришет "Attach listing file"... где его взять если я его и в глаза не видел.
Дык это тот самый листинг, который должен выдать твой ассемблер!!!
sas9568635 wrote:А это точно что этот листинг нужно прикричивать имеенно к асм, а не дизасм?
Ну, вообще-то, обычно ассемблер генерирует листинг. В нём ведь должны быть строки из исходного файла.
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Ассемблеры

Post by liberation »

sas9568635 wrote:Какие должны быть разделители? (сколько пробоелов между этим всеми столбцами, должно ли быть выравнивание столбцов)? ДО КОГДА ЭТО НАДО СДЕЛАТЬ?
У нас на форуме тусит многоуважаемый Tim0xA, как раз вчера он спрашивал про сохранившиеся у нас рекомпиляции MSX'ских игр для ПК-01. Я нашел их и подготовил архив, который можно скачать из файлового хранилища. Там присутствуют файлы исходников (выглядят как-то так: BomberMan-src, CanBall-src), которые можно посмотреть на предмет того, как оформляется листинг. Еще на сайте Tim0xA выложены исходники игры Boulder Dash, версия Андрея Лебедева, которые тоже можно посмотреть.
Carthago delenda est, Carthaginem delendam esse
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests