PC-01 Lviv
http://pc01.lviv.ua/forum/

Ассемблеры
http://pc01.lviv.ua/forum/viewtopic.php?f=20&t=146
Page 1 of 2

Author:  sas9568635 [ 25 May 2012, 22:57 ]
Post subject:  Ассемблеры

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

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

И самое главное:
Нужно ли делать чтобы компилятор понимал одинаково вот такое:
Quote:
MOV A, B
MOVA,B
MOV A , B
MOV A B
MOVAB
MOV AB
MOVA B
И еще как-то там…
Наверное все таки нужна жесткость для написания команд. Чтобы развивалась культура в их написании..
У кого будут какие предложения и пожелания…

Author:  sas9568635 [ 26 May 2012, 08:25 ]
Post subject: 

Что-то глухо с пожеланиями... видимо не очень то он кому-то нада...
Называеться напиши как напишешь ... для себя и забудь...

Author:  liberation [ 27 May 2012, 10:00 ]
Post subject: 

Quote:
Что-то глухо с пожеланиями...
В разработке можно ориентироваться на описание Макроассемблера от Microsoft для CP/M80 (раздел " 2.2. Макроассемблер - MAC"). Вещь была действительно стоящей для кодинга. :)

Author:  sadfsdfsdaf [ 04 Jun 2012, 00:48 ]
Post subject:  Re: Ассемблеры

пожелания? так вопросы не слишком серьёзные. я не вижу проблемы реализовать сразу всё, что упоминалось (системы счисления, форматирование и т.п.). вопрос в целевом применении - старые трансляторы (из 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) должна быть.

так что - компилятор должен быть в чём-то "особенным".

Author:  sas9568635 [ 04 Jun 2012, 22:01 ]
Post subject:  Re: Ассемблеры

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

Author:  sas9568635 [ 04 Jun 2012, 22:02 ]
Post subject:  Re: Ассемблеры

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

Author:  sadfsdfsdaf [ 05 Jun 2012, 00:07 ]
Post subject:  Re: Ассемблеры

Quote:
Quote:
так что - компилятор должен быть в чём-то "особенным".
Незачем. У меня более грандиозные цели см.тему DprToLvt (PasToLvt) http://lvovpc.ho.ua/forum/viewtopic.php?f=4&t=153#p1663
промежуточное текстовое представление? ну, не вопрос, а почему не SSA ? почему не триады ? кстати, будет ли реализован "супероптимизатор" ? ещё было бы неплохо добавить монады и ленивые вычисления....

Author:  liberation [ 05 Jun 2012, 00:19 ]
Post subject:  Re: Ассемблеры

Quote:
промежуточное текстовое представление? ну, не вопрос, а почему не SSA ? почему не триады ? кстати, будет ли реализован "супероптимизатор" ? ещё было бы неплохо добавить монады и ленивые вычисления....
Запахло то ли Лиспом, то ли вообще Хаскеллом... Не слишком ли это для ПК-01? Хотя бы теоретически это возможно реализовать на столь скромном железе?

Author:  sadfsdfsdaf [ 05 Jun 2012, 00:44 ]
Post subject:  Re: Ассемблеры

Quote:
Запахло то ли Лиспом, то ли вообще Хаскеллом... Не слишком ли это для ПК-01? Хотя бы теоретически это возможно реализовать на столь скромном железе?
Теоретически как раз легко, тем более, что уже было в разное время реализовано: http://www.artinfo-musinfo.org/en/issues/vlisp/8en.html

Author:  sas9568635 [ 05 Jun 2012, 09:55 ]
Post subject:  Re: Ассемблеры

Quote:
промежуточное текстовое представление? ну, не вопрос, а почему не SSA ? почему не триады ? кстати, будет ли реализован "супероптимизатор" ? ещё было бы неплохо добавить монады и ленивые вычисления....
???!!! Извените, но я что-то очень слабо понимаю написанное...
мне незнакомы термины "SSA", "не триады", "Superoptimization","монады", "ленивые вычисления"...
я конечно смотрел в Вики, но все равно очень плохо понял что это такое "SSA", "не триады", "монады", "Superoptimization" - это описание вообще на англ., я слабо знаю англ....

Author:  sas9568635 [ 05 Jun 2012, 09:59 ]
Post subject:  Re: Ассемблеры

Quote:
Запахло то ли Лиспом, то ли вообще Хаскеллом... Не слишком ли это для ПК-01? Хотя бы теоретически это возможно реализовать на столь скромном железе?
???!!! Мне незнакомо... "Лиспом" "Хаскеллом"...

Author:  sas9568635 [ 05 Jun 2012, 18:05 ]
Post subject:  Re: Ассемблеры

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

Author:  b2m [ 05 Jun 2012, 23:12 ]
Post subject:  Re: Ассемблеры

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

Author:  b2m [ 05 Jun 2012, 23:28 ]
Post subject:  Re: Ассемблеры

Quote:
Дак если метки пока не реализованы... то без меток прямые адреса можно? Иль это только когда метки реализую..
То, что стоит после кодов - это строка исходного файла, что там написано, то и будет отображаться. Любой текст.
Quote:
слушай, а может сделать так, чтобы асм "заганял" ассемлируемую прогу в твой EMU-формат, но не запускал
Что-то как-то сложно. Хотя я ничего не имею против. Берёшь в качестве шаблона записанный эмулятором файл, и изменяешь нужные байты памяти. Другое дело, что смещение может измениться, если изменить конфиг. Там в .emu весь обработанный конфиг хранится, плюс состояние компонентов конфига.
Quote:
Ну и ... что я вижу, ожидает открытие какого файла?... пришет "Attach listing file"... где его взять если я его и в глаза не видел.
Дык это тот самый листинг, который должен выдать твой ассемблер!!!
Quote:
А это точно что этот листинг нужно прикричивать имеенно к асм, а не дизасм?
Ну, вообще-то, обычно ассемблер генерирует листинг. В нём ведь должны быть строки из исходного файла.

Author:  liberation [ 06 Jun 2012, 08:42 ]
Post subject:  Re: Ассемблеры

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

Page 1 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/