Кроссассемблеры для 8080?

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

User avatar
cr0acker
God
Posts: 1078
Joined: 03 Feb 2003 13:53

Post by cr0acker »

cr0acker wrote:
cr0acker wrote:
Caro wrote:
Shiru Otaku wrote:Спасибо за наводки. Пока не успел потестить все названные ассемблеры, чуть позже получше на них посмотрю, и расскажу, что я про них думаю:)
caro wrote:Наткнулся на приличный ассемблер:
------------------------------------------------------------------------
AS80 [1.30] - Assembler for 8080/8085/Z80 microprocessor.
Не, этот неприличный:) Он не знает мнемоник 8080.
А у меня есть отличный конвертор 8080 -> Z80 :)
А чем вам это не нравится?
Или это
Или это
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

cr0acker wrote:А чем вам это не нравится?
Да - 8080/8085 есть в этом списке:

http://john.ccac.rwth-aachen.de:8000/as/cpulist.html
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

2_Shaos

Post by Lavr »

Я что-то юмора не понял... ну ладно Опера почему-то
куки не поддерживает...
Но зашел Ихплорером - хотел исходники взглянуть...
И взглянул :)
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:...можно моим кросс-ассемблером 8080/8086 воспользоваться - http://shaos.ru/pub/rasm_dos.zip
А твой rasm учитывает арифметические выражения в строке аргументов?
iLavr
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Shaos wrote:...можно моим кросс-ассемблером 8080/8086 воспользоваться - http://shaos.ru/pub/rasm_dos.zip
А твой rasm учитывает арифметические выражения в строке аргументов?
нет - мой расм достаточно простой (можно даже сказать примитивный) - там даже макросов нет...

P.S. исходники и бинарники брать на SourceForge: http://sf.net/projects/nedopc/files/rasm/
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:нет - мой расм достаточно простой (можно даже сказать примитивный) - там даже макросов нет...
А где бы узнать "правильные" правила для применения арифметических выражений
в строке аргументов?
Каков там предел вычислений (для i8080 естественно)?
А то я читаю - кое-где и логические выражения возможны в строке аргументов...

И да, я читал, что четких стандартов нет, но всё-таки?

Code: Select all

     SHLD MET+1
MET:
     JMP THERE
Или возможно что-то типа:

Code: Select all

CONST EQU 0FFH
      MVI A,CONST/4+2*2

PS. Смотрел вот Ассемблер STM8 - там четкость в описании присутствует:
Арифметические выражения. Но для i8080 это мне представляется слишком...
Даже в Структуре программы на ассемблере 8086, как мне кажется,
арифметические и логические выражения сложноваты для i8080
...
iLavr
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

ну насколько фантазия автора конкретного ассемблера разгуляется - то и будет
к специфике процессора это не имеет никакого отношения...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:к специфике процессора это не имеет никакого отношения...
Вот спасибо-то что сказал! :lol: Воистину мудрость изрёк, достойную быть высеченной
на скрижалях! :wink:

Только вот к конкретой реализации компилятора это имеет самое прямое отношение...

У одного - чрезмерно много арифметики и логики в строке аргумента, у другого - поменьше,
но тоже немало...
Причем это задокументировано...

А для компиляторов 80-го процессора я что-то не нашел хотя бы каких-то упоминаний,
на что они способны в строке.

Ну кроме распространенных "+" и "-", реже "*" и "/" еще реже - логики...
Но даже если только "+" и "-" сколько раз их можно заюзать в строке аргумента?
Я лично не проверял, почему и интересуюсь...
iLavr
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

спрашивай у авторов каждого из интересуемых ассемблеров - очевидно же
общеупотребимого решения, а тем более стандарта - несуществует...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:спрашивай у авторов каждого из интересуемых ассемблеров - очевидно же
общеупотребимого решения, а тем более стандарта - несуществует...
Оригинальный совет... а у кого мне спросить каково вложение арифметических или
логических операций в ассемблере "Микрон" и в "Асм_МХ" "Специалиста"?

Есть же какой-то разумный смысл в длине вложения? Строка аргумента всё же не
калькулятор любых выражений, как я полагаю?...
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Ассемблер "Микрон", если не ошибаюсь, допускает простые выражения, содержащие сложение и вычитание. Подробнее было в "Радио", 1987 г., ¹7. По образу и подобию "Микрона" работали и другие ассемблеры для "Ориона", к примеру, ассемблер K&K. В имеющемся у меня описании (возможно, не полном) более сложного ассемблера Oberon, допускавшего сборку программы из отдельных модулей с помощью редактора связей, этот вопрос вообще не освещается.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:Ассемблер "Микрон", если не ошибаюсь, допускает простые выражения, содержащие сложение и вычитание...
Это я понимаю, поскольку как раз гуглю все возможные описания на простые ассемблеры...

К модернизированному "Микрону" позже добавили "*" и "/" .
"Асм_МХ" "Специалиста" умеет только "+" и "-", но меня совсем не из праздного любопытства
интересует - сколько операции возможно в строке аргумента:

Code: Select all

CONST EQU 0FFH 
      MVI A,CONST/4+2*2
Есть же, я полагаю, какой-то разумный предел? И чем он обусловлен?

Я в своих программах использовал чаще всего только "+" в ситуациях типа:

Code: Select all

     SHLD MET+1 
MET: 
     JMP THERE
Но если добавляют "*" и "/" да ещё и логические операции - значит в этом
где-то есть необходимость?
iLavr
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:Есть же, я полагаю, какой-то разумный предел? И чем он обусловлен?
Фантазией автора...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:
Lavr wrote:Есть же, я полагаю, какой-то разумный предел? И чем он обусловлен?
Фантазией автора...
Я так не думаю. Если ассемблер не эмуляторный под ДОС, Венду и т.д., то там
на первом месте - вопрос занимаемой ассемблером памяти.
Может и нафантазировал автор "летать", но яйца объёмов памяти не пускают...

С другой стороны, когда я писал свой ассемблер:

Image

я про арифметические операции только в самом конце вдруг вспомнил.

И реализовал только сложение и вычитание - одна операция в строке аргумента.
И лень было, и подумал я, что сам использую обычно только:

Code: Select all

     SHLD MET+1 
MET: 
     JMP THERE
Так что мне самому этого хватит.

Но авторы популярных пакетов ориентировались же на какой-то образец?
Автор Pretty 8080 assembler даже какую-то редкостную книжку выискивал,
чтобы на стандарты сориентироваться...
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Прочитав имеющиеся у меня описания, могу сделать вывод, что в "Орионовских" ассемблерах возможны столько действий сложения и вычитания, сколько уместится в текстовой строке на 64 символа. Авторы в описаниях не уделяли внимания этому вопросу, видимо, это было не актуально тогда.

Если интересно, могу провести эксперименты на своём "Орионе". Но формулировка заданий - за тобой :-).