viewtopic.php?t=9310
поскольку была в некотором роде триединой: я сам мог ввести нужные мне ассемблерные команды в PIC8080, на основе этих команд писалась программа Теннис, которую своим же компилятором я и переводил в коды.
Ну и чтоб не изобретать на этом пути древних велосипедов, я слегка обозрел материалы в Инете на вопрос - как написать компилятор.
Честно говоря, меня это повергло в некоторое сомнение, ибо, если бы я учился писать компиляторы на этом материале - я, наверное, осилить такую задачу не смог бы...
Хотя встретились вещи и совершенно удивительные - компилятор, который может скомпилировать сам себя на GW-Basic, к примеру, и некоторые другие интересные проекты...
http://www.soft-info.ru/downloads/cat207
http://www.vbnet.ru/articles/showarticle.aspx?id=131
http://www.kulichki.net/kit/
http://exmortis.narod.ru/
последний сайт мне асабливо понравился, хотя конечно накопать можно еще много чего.
Основная мысль меня просто убила - написать компилятор тяжело, противно, и трудно довести это дело до победного конца, а лучше всего написать транслятор в мнемоники какого либо другого известного и распространенного языка, а уж потом готовым компилятором всё и компилить.
Может, конечно, это и не везде так, но такова основная мысль распространенного материала - Компилятор пишется так...
http://www.cast.h1.ru/Articles/compiler_writes_as.shtml
В общем, я плюнул на эти источники и написал компилятор PIC ASSM i8080 так, как умел сам, как учился сам, проводя в древние времена реверс-разработки программ-Ассемблеров для 8-битных процессоров.
А теперь - основное о чем я, собственно, хотел сказать в этом топике.
На путях обзора различных компиллеров, попалась мне интересная программулина
EDUCATIONAL ASSEMBLER I8080 VERSION 2.0 for MS Windows 95/98
Copyright 1995-2000 by Konstantin Zheludev
попробовать её можно отсюда:
http://sgu-wap.narod.ru/PIC8080/Assm80.rar
я думаю, автор не обидится на меня, ибо откуда я её взял - не запомнил, значит будем считать, что я бесплатно делаю ему рекламу.

Ничего потрясающего в этом EDUCATIONAL ASSEMBLER не было, и мои программы от Специалиста_MX, пусть тот же Теннис,
http://sgu-wap.narod.ru/Tennis/PONG.rar
этот EDUCATIONAL ASSEMBLER скомпилировать не смог, поскольку сразу не нравилось ему слово ORG, а потом он ругался на длину программы и т.д.
Короче, ничего кроме собственных примеров EDUCATIONAL ASSEMBLER я на нём не скомпилировал, но удивила меня одна опция - перевести коды ассемблера i8080 в мнемоники Z80 (что вполне не фантастично) и в мнемоники i8086 - что уже более интересно!
Свои примеры он действительно переводит, хотя несколько по-своему. И поскольку скопилировать его текст сразу не получится, нет обрамления типа
Code: Select all
сode_seg SEGMENT PARA 'CODE'
ASSUME CS:code_seg, DS:code_seg, SS:code_seg
;
ORG 100H
BEGIN_COD:
...
code_seg ENDS
END BEGIN_COD
А сам вопрос весьма интересен, поскольку Intel всегда утверждала, что программы под i8080 можно практически безболезненно перекомпилировать под x86, переписав их в новых мнемониках.
То что это правда - я знаю, сам так делал, когда еще только осваивал IBM PC XT и перетаскивал под него всё что было наработано на Специалисте, но специальных программ мне ни попадалось ни одной.
Год назад я обсуждал этот вопрос с Витей Пыхониным, он таких программ тоже не видел, но хотел бы что-то подобное приделать к своему эмулятору.
Я тогда загорелся идеей и набросал небольшой проект, который ни протестировать ни довести до ума в то время не случилось. Но, встретив этот EDUCATIONAL ASSEMBLER, я свой проект раскопал и скомпилировал на нём компилятор ассемблера

Я не помню, что я еще хотел добавить тогда в этот проект, зачем-то там 3 поля внизу задействованы... но, на мой взгляд, основную задачу этот софт выполняет.
Интерфейс понятный интуитивно,

хелп есть,
http://sgu-wap.narod.ru/PIC8080/Help.HLP
чего еще надо - не знаю, а поэтому выкладываю его здесь
http://sgu-wap.narod.ru/PIC8080/ASMWizard.rar
для тестирования и битья, вдруг что хорошее получилось, а может и ашыпки есть...

Исходник ASSM_MX там тоже прилагается.
PS. Я кстати решил дотащить его до рабочего варианта под DOS - интересно что выйдет. Коды и алгоритм менять не буду, как доделаю, тоже выложу здесь.