Объясните пожалуйста поэтапно, как создать helloWorld-подобную программу при помощи z88dk или SDCC.
И какой из них оптимизированнее создаёт байт-код?
Вид для печати
Объясните пожалуйста поэтапно, как создать helloWorld-подобную программу при помощи z88dk или SDCC.
И какой из них оптимизированнее создаёт байт-код?
лолшто? Вам *точно* вышеупомянутые инструменты нужны?
и причем тут оптимизированный?
goblinish, он хочет написать программу для спека на С
Мне понравился кросс-компилятор Ccz80. Сделал свою сборку, см.файл.
В текстовом файле probe.ccz80 пиши свою программу на C, потом запускай bat-ник compile.bat. Он компилирует в ассемблер в файл probe.asm.
Подробно тут: http://www.telefonica.net/web2/emili...z80/ccz80.html
P.S. А кто-нибудь знает, как отключить комментарии в компилируемом asm, а то их много и назойливые?
Правда, компилируемый код - неоптимизированная жесть. Я лучше вручную на асме буду, пока не напишут нормальный компилятор.
В отсутствии стандартных библиотек, приходится писать под железо.
---------- Post added at 13:50 ---------- Previous post was at 13:47 ----------
Для helloworld с printf'ом нужен стандартный ввод-вывод, его нет.
Компилятор Си не байт-код делает, а бинарь.
Я бы смотрел на sdcc.
холивар штоле?о_О
не ясно, зачем "оптимизированный" код на z80, и почему ТС в игродел ударился?
---------- Post added at 15:09 ---------- Previous post was at 15:07 ----------
тогда - ппц, если мне память не изменяет об исследовании игр Teclado..
Забыл, вроде, Captain Trueno изучал..
стандартная библиотека в составе компилятора обычно есть
если она в исходниках, то надо лишь самый нижний уровень реализовать для спектрума, остальное само заработает
то есть пишем процедуру вывода симвода, и автоматически получаем и printf, и все, что угодно
будет медленный (с таким постоянным использованием стека-то!), но рабочий hello, worldКод:void printchar(char ch)
{
asm
{
push af
ld a, ch
rst 0x10
pop af
}
}
Из компиляторов лучше всех sdcc и iar z80. sdcc мне больше нравится - и по оптимизации, и по фичам, да и кроссплатформенный он
helloworld-ПОДОБНАЯ, то есть к примеру циклом заполнить определёнными байтами определённую область памяти
---------- Post added at 16:48 ---------- Previous post was at 16:47 ----------
И сложность не в сишном синтаксисе , а в самой эксплуатации компилятора
---------- Post added at 17:02 ---------- Previous post was at 16:48 ----------
Для кроссплатформы...Вряд ли..
Этот бинарь ведь не подходит для инструкций x86
---------- Post added at 17:04 ---------- Previous post was at 17:02 ----------
Как к примеру java, уже исполняется на вирт. машине, так и тут аналог её - эмулятор горбатого
---------- Post added at 17:06 ---------- Previous post was at 17:04 ----------
а вот это пожалуй опробую.
"вряд ли" - это ответ на вопрос о существовании инопланетян, или о вероятности встретить динозавра :)
а тут все однозначно - это точно не байткод
байткод по определению платформонезависим
а после кросс-компиляциия получается 100%-но платформозависимый бинарник, нативный код процессора
Кросс-компилятор просто позволяет компилировать программы с определенного языка в машинный код для процессора с набором команд отличным от набора команд процессора который исполняет программу компилятор. То есть - кросс компилятор это прога которая компилирует на машине с системой команд х86 программу для ARM или AVR или PIC или Z80 ( тоесть для любого не х86 проца).
В настоящий момент - практически все среды разработки на PC для микроконтроллеров и прочего - являются кросс-компиляторами.
Читаю я эту тему и с ужасом представляю сишный компелятор под х86, транслирующий сишку в байткод под JVM, запускаемую на Робике...:)
:) зато ОНО будет платформо независимо ;) и кроссплатформенно :)
:v2_sleep:
вот нашёл в архиве обсуждение подобной темы.
Скрытый текст
И сравнение оптимизации компиляторовСкрытый текст
[свернуть]
Ежели мне память не изменяет, то оно на спектруме уже было. Не JVM, конечно, а принцип.
Не помню точно какой, но был компилятор спековского бейсика, который на выходе давал байт-код, а не нативный код Z80. Ускорение было весьма существенным.
Естественно, что при выполнении этого байт-кода нужно было подгружать часть компилятора, которая (в современной терминологии) обеспечивала работу виртуальной машины.
вот оно вроде - BLAST. http://zxpress.ru/book_articles.php?id=1306
Капец, читаю тему и офигеваю - чел спросил tutorial по применению С на zx а ему в ответ один мусор. Это че прикол такой?
Сам пробовал компилить исходники digger x86 (.com) на SDCC - результата не добился,
1. много требует памяти
2. компилит под реальные 64 кб address space (как компилить под страницы aka LARGE/HUGE или в какой-то там obj так и не понял, кроме конечно как руками линковать и свой загружчик/manager ваять)
3. тормоз
слишком много проблем и мало желания\времени