User Tag List

Страница 59 из 113 ПерваяПервая ... 555657585960616263 ... ПоследняяПоследняя
Показано с 581 по 590 из 1128

Тема: ЭТЮДЫ

  1. #581

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Не могу, тёзка.
    Если по P/M (у меня макрос, его поменять нет проблем, но если надо контролировать другой флаг, то придётся весь текст перелопачивать где есть сравнение)
    Без обид, проверяй как-нибудь иначе (что там Reobne, накалякал?)
    А если так?
    Код:
    _no_xor:
    		jp	P,A_меньше_B
    		CCF
    		ret
    A_меньше_B: ; A<B
    		SCF
    		ret
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  2. #582

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,823
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    		or	a
    		sbc	hl,de
    		jp	PO,.nx
    		ld	a,h
    		xor	a, #80
    .nx
    		jp	P,.amb
    		CCF
    		ret
    .amb
    		SCF
    		ret
    Если я правильно написал, то не работает.

  3. #583

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,340
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    ...A_меньше_B ld hl,#0x0000 ; A>B ret A_меньше_B: ; A<B...
    Проверял на своей тест-проге. Тест не пройден.
    Судя по комментам, у тебя 2 исхода A>B и A<B. Лучше и понятнее писать HL<DE и HL>=DE. А то я смотрю и не понимаю, что тут вообще изначально подразумевалось, и как прогу можно исправить, чтобы заработала.

  4. #584

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Проверял на своей тест-проге. Тест не пройден.
    Судя по комментам, у тебя 2 исхода A>B и A<B. Лучше и понятнее писать HL<DE и HL>=DE. А то я смотрю и не понимаю, что тут вообще изначально подразумевалось, и как прогу можно исправить, чтобы заработала.
    A - HL
    B - DE
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  5. #585

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,340
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sergey, Исправил конец на вот так:
    Код:
                    jp      M,A_меньше_B
                    ld      hl,#0000  ; HL>=DE
    
                    ret
    A_меньше_B: ; HL<DE
                    ld      hl,#0001
                    ret
    И заработало!

  6. #586

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,340
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Текущая версия тестов. 6 разных процедур тестируются на совпадение результатов.
    Вложения Вложения
    Последний раз редактировалось Reobne; 11.02.2015 в 15:11. Причина: Добавил TRD версию, чтобы можно было без EMUZWin

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

  8. #587

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а нельзя ли поменять LD HL,nnnn на установку флага С?

  9. #588

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    а нельзя ли поменять LD HL,nnnn на установку флага С?
    http://zx-pk.ru/showpost.php?p=780698&postcount=587
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  10. #589

    Регистрация
    23.12.2006
    Адрес
    Славный город Самара
    Сообщений
    484
    Спасибо Благодарностей отдано 
    135
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Sergey, так в среднем ещё быстрей выходит:
    ...
    Всё, вилы!
    Код:
            LD A,H     ; 4
            XOR D      ; 4
            JP P,CHD   ; 10
            EX DE,HL   ; 4
    CHD     SBC HL,DE  ; 15
    33/37 т.
    ...
    Думали тема раскрыта? - Ха!
    Заменяем EX DE,HL, время которого ПРИБАВЛЯЕТСЯ к 16-битному вычитанию, на вычитание HL из DE с помощью 8-битной арифметики, которое выполняется ВМЕСТО 16-битного вычитания. Идея использования 8-й арифметики взята из SDCC.

    Код:
            LD A,H     ; 4
            XOR D      ; 4
            JP P,CHD   ; 10
    ;       EX DE,HL   ; 4
    	ld a,e	; 4
    	sub l	; 4
    	ld a,d	; 4
    	sbc a,h ; 4
    	<ветвление по результату сравнения (CF)>
    CHD     SBC HL,DE  ; 15
    	<ветвление по результату сравнения (CF)>
    34/33 такта. Среднее время выполнения 33,5.
    С уважением,
    Gris / Red Triangle.
    _____________________________________
    ZX-EVO/TS-Labs config/NGS/HDD/SD-card
    Amiga A1200/Blizzard 1230@50/32/60GB
    Amiga A1200/Apollo 1260@66/32/60GB
    UnAmiga (C5) AGA GM7123 VideoDAC

  11. #590

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,823
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergey Посмотреть сообщение
    <ветвление по результату сравнения (CF)>
    А оно что, не съест такты?
    Т.е. эти <ветвление по результату сравнения (CF)> В ЛЮБОМ СЛУЧАЕ ПРОИСХОДЯТ.
    Неважно внутри процедуры (как твой пример) или после (как мой)
    У тебя получается либо 15 тактов на SBC и ветвление либо 16 на сравку + опять ветвление.
    Последний раз редактировалось Destr; 11.02.2015 в 22:32.

Страница 59 из 113 ПерваяПервая ... 555657585960616263 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

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

Ваши права

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