Просмотр полной версии : нужна помощь в кроссплатформенном программировании
Объясните пожалуйста поэтапно, как создать helloWorld-подобную программу при помощи z88dk или SDCC.
И какой из них оптимизированнее создаёт байт-код?
goblinish
29.12.2011, 08:08
лолшто? Вам *точно* вышеупомянутые инструменты нужны?
и причем тут оптимизированный?
goblinish, он хочет написать программу для спека на С
Andrew771
29.12.2011, 11:23
Мне понравился кросс-компилятор Ccz80. Сделал свою сборку, см.файл.
В текстовом файле probe.ccz80 пиши свою программу на C, потом запускай bat-ник compile.bat. Он компилирует в ассемблер в файл probe.asm.
Подробно тут: http://www.telefonica.net/web2/emilioguerrero/ccz80/ccz80.html
P.S. А кто-нибудь знает, как отключить комментарии в компилируемом asm, а то их много и назойливые?
Andrew771
29.12.2011, 12:49
Правда, компилируемый код - неоптимизированная жесть. Я лучше вручную на асме буду, пока не напишут нормальный компилятор.
goblinish
29.12.2011, 12:52
goblinish, он хочет написать программу для спека на С
сложно всё это, имхо.
Andrew771
29.12.2011, 13:12
сложно всё это, имхо.
в чем сложности? В освоении языка С?
Мне понравился кросс-компилятор Ccz80
жаль что обфуцирован и без сырков...
сложно всё это, имхо.
Испанцы пишут, можно у них спросить
NovaStorm
29.12.2011, 13:50
в чем сложности? В освоении языка С?
В отсутствии стандартных библиотек, приходится писать под железо.
---------- Post added at 13:50 ---------- Previous post was at 13:47 ----------
Объясните пожалуйста поэтапно, как создать helloWorld-подобную программу при помощи z88dk или SDCC.
Для helloworld с printf'ом нужен стандартный ввод-вывод, его нет.
И какой из них оптимизированнее создаёт байт-код?
Компилятор Си не байт-код делает, а бинарь.
Я бы смотрел на sdcc.
goblinish
29.12.2011, 15:09
в чем сложности? В освоении языка С?
холивар штоле?о_О
не ясно, зачем "оптимизированный" код на z80, и почему ТС в игродел ударился?
---------- Post added at 15:09 ---------- Previous post was at 15:07 ----------
Испанцы пишут, можно у них спросить
тогда - ппц, если мне память не изменяет об исследовании игр Teclado..
Забыл, вроде, Captain Trueno изучал..
Для helloworld с printf'ом нужен стандартный ввод-вывод, его нет.
стандартная библиотека в составе компилятора обычно есть
если она в исходниках, то надо лишь самый нижний уровень реализовать для спектрума, остальное само заработает
то есть пишем процедуру вывода симвода, и автоматически получаем и printf, и все, что угодно
void printchar(char ch)
{
asm
{
push af
ld a, ch
rst 0x10
pop af
}
}
будет медленный (с таким постоянным использованием стека-то!), но рабочий hello, world
Из компиляторов лучше всех sdcc и iar z80. sdcc мне больше нравится - и по оптимизации, и по фичам, да и кроссплатформенный он
Для helloworld с printf'ом нужен стандартный ввод-вывод, его нет.
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 ----------
Мне понравился кросс-компилятор Ccz80. Сделал свою сборку, см.файл.
В текстовом файле probe.ccz80 пиши свою программу на C, потом запускай bat-ник compile.bat. Он компилирует в ассемблер в файл probe.asm.
Подробно тут: http://www.telefonica.net/web2/emili...z80/ccz80.html
а вот это пожалуй опробую.
Для кроссплатформы...Вряд ли..
Этот бинарь ведь не подходит для инструкций x86
"вряд ли" - это ответ на вопрос о существовании инопланетян, или о вероятности встретить динозавра :)
а тут все однозначно - это точно не байткод
байткод по определению платформонезависим
а после кросс-компиляциия получается 100%-но платформозависимый бинарник, нативный код процессора
balu_dark
29.12.2011, 18:55
Кросс-компилятор просто позволяет компилировать программы с определенного языка в машинный код для процессора с набором команд отличным от набора команд процессора который исполняет программу компилятор. То есть - кросс компилятор это прога которая компилирует на машине с системой команд х86 программу для ARM или AVR или PIC или Z80 ( тоесть для любого не х86 проца).
В настоящий момент - практически все среды разработки на PC для микроконтроллеров и прочего - являются кросс-компиляторами.
Читаю я эту тему и с ужасом представляю сишный компелятор под х86, транслирующий сишку в байткод под JVM, запускаемую на Робике...:)
balu_dark
29.12.2011, 19:29
:) зато ОНО будет платформо независимо ;) и кроссплатформенно :)
goblinish
29.12.2011, 20:55
Читаю я эту тему и с ужасом представляю сишный компелятор под х86, транслирующий сишку в байткод под JVM, запускаемую на Робике...:)
достойный зелени пост:v2_dizzy_roll:
вот нашёл в архиве обсуждение подобной темы.
И сравнение оптимизации компиляторовhttp://zx.pk.ru/archive/index.php/t-1408.html
Читаю я эту тему и с ужасом представляю сишный компелятор под х86, транслирующий сишку в байткод под JVM, запускаемую на Робике...:)
Ежели мне память не изменяет, то оно на спектруме уже было. Не 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. тормоз
слишком много проблем и мало желания\времени
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot