User Tag List

Показано с 11 по 20 из 74

Тема: Осваиваем Hi-Tech C v3.09 для CP/M

Древовидный режим

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

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

    По умолчанию

    Да и пусть себе теряются, компилятор не ждёт от функции сохранности флагов (и правильно делает).

    Шынни, мне CP/M не интересна как таргет, вместо этого хочу приспособить компилятор для разработки под Спектрум, а тут BDOS нет.

    - - - Добавлено - - -

    Продолжим исследования. Хайтех для входа в любоую функцию генерирует:
    Код:
     CALL ncsv
     DW 0        ; Сколько байт резервировать на стеке для локальных переменных
    FnBody: ...  ; Тут начинается сама функция
    ; А заканчивается она не RET, а
     JP cret
    Спишем на то, что хайтек - компилятор однопроходный. И не знает на момент генерации кода входа в функцию, сколько байтов надо выделить на стеке для лок. переменных. Это он узнаёт уже потом.

    SDCC же многопроходный, поэтому вместо вызова фрейма входа и выделения 0 байтов на стеке он просто вызывает функцию напрямую. И она возвращается по RET.

    Я не готов сходу дать список отличий Hi-Tech C v3.09 и SDCC, но в этом SDCC сильно лучше. Вызов функций - вещь базовая, и она должна быть устроена максимально производительно. Возражения?

    SDCC с ключиком --opt-code-size генерит такой вход в процедуру:
    Код:
    	call	___sdcc_enter_ix
    	push	af
    	push	af ; Надо выделить 4 байта на стеке
    	...
    	ld	sp, ix
    	pop	ix
    	ret
    C ключиком --opt-code-speed:
    Код:
    	push	ix
    	ld	ix,#0
    	add	ix,sp
    	push	af
    	push	af ; Надо выделить 4 байта на стеке
    	...
    	ld	sp, ix
    	pop	ix
    	ret
    Последний раз редактировалось Oleg N. Cher; 19.01.2017 в 13:13.

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

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

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

Похожие темы

  1. Осваиваем микрокомпьютер (1 и 2 ч.)
    от kas29 в разделе Пресса
    Ответов: 2
    Последнее: 06.02.2020, 01:27
  2. Видеоподкаст: "Old Gold Tech"
    от unbeliever в разделе Разный софт
    Ответов: 1
    Последнее: 12.06.2010, 13:41

Ваши права

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