PDA

Просмотр полной версии : нужна помощь в кроссплатформенном программировании



ALKO
29.12.2011, 00:09
Объясните пожалуйста поэтапно, как создать helloWorld-подобную программу при помощи z88dk или SDCC.

И какой из них оптимизированнее создаёт байт-код?

goblinish
29.12.2011, 08:08
лолшто? Вам *точно* вышеупомянутые инструменты нужны?
и причем тут оптимизированный?

jerri
29.12.2011, 09:03
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
сложно всё это, имхо.
в чем сложности? В освоении языка С?

ZEK
29.12.2011, 13:17
Мне понравился кросс-компилятор Ccz80
жаль что обфуцирован и без сырков...

jerri
29.12.2011, 13:30
сложно всё это, имхо.

Испанцы пишут, можно у них спросить

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 изучал..

Eltaron
29.12.2011, 15:39
Для helloworld с printf'ом нужен стандартный ввод-вывод, его нет.
стандартная библиотека в составе компилятора обычно есть
если она в исходниках, то надо лишь самый нижний уровень реализовать для спектрума, остальное само заработает
то есть пишем процедуру вывода симвода, и автоматически получаем и printf, и все, что угодно


void printchar(char ch)
{
asm
{
push af
ld a, ch
rst 0x10
pop af
}
}

будет медленный (с таким постоянным использованием стека-то!), но рабочий hello, world

Из компиляторов лучше всех sdcc и iar z80. sdcc мне больше нравится - и по оптимизации, и по фичам, да и кроссплатформенный он

ALKO
29.12.2011, 17:06
Для 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

а вот это пожалуй опробую.

Eltaron
29.12.2011, 18:23
Для кроссплатформы...Вряд ли..
Этот бинарь ведь не подходит для инструкций x86
"вряд ли" - это ответ на вопрос о существовании инопланетян, или о вероятности встретить динозавра :)
а тут все однозначно - это точно не байткод
байткод по определению платформонезависим
а после кросс-компиляциия получается 100%-но платформозависимый бинарник, нативный код процессора

balu_dark
29.12.2011, 18:55
Кросс-компилятор просто позволяет компилировать программы с определенного языка в машинный код для процессора с набором команд отличным от набора команд процессора который исполняет программу компилятор. То есть - кросс компилятор это прога которая компилирует на машине с системой команд х86 программу для ARM или AVR или PIC или Z80 ( тоесть для любого не х86 проца).
В настоящий момент - практически все среды разработки на PC для микроконтроллеров и прочего - являются кросс-компиляторами.

Slesar
29.12.2011, 19:12
Читаю я эту тему и с ужасом представляю сишный компелятор под х86, транслирующий сишку в байткод под JVM, запускаемую на Робике...:)

balu_dark
29.12.2011, 19:29
:) зато ОНО будет платформо независимо ;) и кроссплатформенно :)

ALKO
29.12.2011, 19:47
:v2_sleep:

goblinish
29.12.2011, 20:55
Читаю я эту тему и с ужасом представляю сишный компелятор под х86, транслирующий сишку в байткод под JVM, запускаемую на Робике...:)
достойный зелени пост:v2_dizzy_roll:

ALKO
31.12.2011, 03:24
вот нашёл в архиве обсуждение подобной темы.
И сравнение оптимизации компиляторовhttp://zx.pk.ru/archive/index.php/t-1408.html

SfS
09.01.2012, 09:55
Читаю я эту тему и с ужасом представляю сишный компелятор под х86, транслирующий сишку в байткод под JVM, запускаемую на Робике...:)

Ежели мне память не изменяет, то оно на спектруме уже было. Не JVM, конечно, а принцип.

Не помню точно какой, но был компилятор спековского бейсика, который на выходе давал байт-код, а не нативный код Z80. Ускорение было весьма существенным.

Естественно, что при выполнении этого байт-кода нужно было подгружать часть компилятора, которая (в современной терминологии) обеспечивала работу виртуальной машины.

вот оно вроде - BLAST. http://zxpress.ru/book_articles.php?id=1306

bigral
10.01.2012, 02:19
Капец, читаю тему и офигеваю - чел спросил tutorial по применению С на zx а ему в ответ один мусор. Это че прикол такой?

Сам пробовал компилить исходники digger x86 (.com) на SDCC - результата не добился,

1. много требует памяти
2. компилит под реальные 64 кб address space (как компилить под страницы aka LARGE/HUGE или в какой-то там obj так и не понял, кроме конечно как руками линковать и свой загружчик/manager ваять)
3. тормоз

слишком много проблем и мало желания\времени