User Tag List

Показано с 1 по 10 из 907

Тема: Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Так проверял. Было б это не так, этот пример бы не работал
    Смотрите, Eltaron:

    Код:
    ;HelloWorld.c:15: Basic_BORDER(4);
    	ld	a,#0x04
    	push	af
    	inc	sp
    	call	_BORDER
    	inc	sp
    ;HelloWorld.c:16: Basic_PAPER(0);
    	ld	a,#0x00
    	push	af
    	inc	sp
    	call	_PAPER
    	inc	sp
    Если бы всё было так, как Вы утверждаете, то SDCC сгенерировал бы что-то вроде:

    Код:
    ;HelloWorld.c:15: Basic_BORDER(4);
    	ld	a,#0x04
    	call	_BORDER
    ;HelloWorld.c:16: Basic_PAPER(0);
    	ld	a,#0x00
    	call	_PAPER
    Вот если бы Вы сказали, что есть ключик, который включает безстековую передачу однобайтового параметра, с убиранием кода, генерирующего фрейм [push af : inc sp : call ... : inc sp], тогда другое дело, и Ваше утверждение было бы 100% корректно и имело бы больше смысла и пользы для нас. А Вы призываете пользоваться тем фактом, что параметр попадает в стек именно через регистр A. Это наведённый эффект, и если способ передачи параметров в SDCC изменят (а кодогенерация SDCC активно дорабатывается), например, начнут передавать через другой регистр, то у Вас всё перестанет работать. Я-то могу конечно убрать внутри процедур BORDER, PAPER и др. доставание параметров из фрейма в аккумулятор, но это такая мелочь, на которой много не выиграешь. А вот проблемы в будущем возникнуть могут. Предпочитаю кулхацкерству надёжное программирование. Хотя могу добавить включаемую ифдефом опцию, которая будет “оптимизировать” такие процедуры. Но она будет по умолчанию отключена.

    P.S. Настоящий прогресс у нас начнётся, когда кто-то из команды, занимающейся кодогенерацией SDCC, действительно добавит такой ключик. А заодно и превратит “ld a,#0x00” в “xor a” (или “sub a”) – (там, где это даст выигрыш). Или найдётся человек, который пропихнёт такие предложения Филиппу Краузе. Дело за малым. Не сидеть и мечтать об идеальном кодогенераторе, а что-нибудь для этого сделать, хотя бы маленький шаг.
    Последний раз редактировалось Oleg N. Cher; 29.03.2014 в 04:13.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    ...
    Упс. Да, это хак, согласен

    превратит “ld a,#0x00” в “xor a” (или “sub a”) – (там, где это даст выигрыш). Или найдётся человек, который пропихнёт такие предложения Филиппу Краузе.
    а это очень просто, кстати
    подобная замена одного кода на другой легко выполняется через sdcc-шный механизм peep hole optimization. Суть его в том, что после основной компиляции запускается поточный текстовый редактор, заменяющий одни конструкции на другие
    надо лишь добавить правило
    Код:
    replace restart {
      ld a, #0x00
    } by {
      xor a
    }
    ЗЫ Запостил Филлипу патч, авось примет
    Последний раз редактировалось Eltaron; 18.03.2012 в 01:58.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. мощная игрушка
    от ZEman в разделе Игры
    Ответов: 128
    Последнее: 23.03.2024, 17:05
  2. Ответов: 5
    Последнее: 20.06.2011, 03:18
  3. Видеоконтроллер из пяти микросхем
    от zx-kit в разделе Изображение
    Ответов: 20
    Последнее: 31.03.2011, 14:48

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •