Важная информация

User Tag List

Страница 106 из 110 ПерваяПервая ... 102103104105106107108109110 ПоследняяПоследняя
Показано с 1,051 по 1,060 из 1094

Тема: ЭТЮДЫ

  1. #1051
    Member
    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    100
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так и я о чём. В этом и был смысл поста 14-летней давности, но оно так не работает, как написано.

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

  3. #1052
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,870
    Спасибо Благодарностей отдано 
    661
    Спасибо Благодарностей получено 
    1,866
    Поблагодарили
    1,063 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    К этому:
    Код:

    add a,-75
    sbc a,-1-75

    претензий нет.
    Тут похожая ситуация:
    1. Если исходно Aисх<x (в примере x=75), то на выходе A=Aисх+1
    2. Если исходно FF>=Aисх>=x, то на выходе A=Aисх

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

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    оно так не работает, как написано.
    Автор того поста не упомянул один момент - чтобы эти конструкции работали, надо чтобы исходное значение было "корректным" (>=x в случае декремента и <=x в случае инкремента).

  4. #1053
    Member
    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    100
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я понимаю.
    Описанный алгоритм с декрементом работает не так, как написано. В приведённом примере, аккумулятор уменьшается до 22, хотя, как написано, он не должен уменьшаться меньше 23. Инкремент работает правильно, к нему претензий нет.

  5. #1054
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,870
    Спасибо Благодарностей отдано 
    661
    Спасибо Благодарностей получено 
    1,866
    Поблагодарили
    1,063 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    Инкремент работает правильно, к нему претензий нет.
    У инкремента тоже есть "мертвая зона", если он правильный, то и декремент тоже.

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

    Если претензия к исходному описанию не в "мертвой зоне", а в не совсем правильном описании порога - могу только согласиться.

  6. #1055
    Member
    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    100
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
            ld a, 30
    err	sub 23
    	adc a, 22
    	jp err
    После 23446557465 итерации оставляет в аккумуляторе 22.

    Код:
            ld a, 30
    err	sub 24
    	adc a, 23
    	jp err
    После 23446557465 итерации оставляет в аккумуляторе 23.

  7. #1056
    Master
    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    905
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    205
    Поблагодарили
    153 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а что мешает сперва проверять, потом делать инкремент/декремент?

    Код:
    CHECK_DN	CP	23+1	; A=23 min
    		JR	C,$+3
    		DEC	A
    PROFIT		...	; уменьшаем до 23
    
    
    CHECK_UP	CP	55	; A=55 max
    		ADC	A,0
    PROFIT		...	; увеличиваем до 55

  8. #1057
    Member
    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    100
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Весь смысл описанного кода как раз в отсутствии проверок и ветвлений.

  9. #1058
    Master
    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    905
    Спасибо Благодарностей отдано 
    76
    Спасибо Благодарностей получено 
    205
    Поблагодарили
    153 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    Весь смысл описанного кода как раз в отсутствии проверок и ветвлений
    Ну, в случае увеличения в моем варианте ветвлений нету, достаточно проверки. И по тактам, если кому критично, без расхождения.
    С уменьшением простого решения нет. Либо раздувать код, либо ветвление.
    Была бы у Z80 проверка сразу нескольких флагов, как на PDP - тогда, думаю, задача бы решилась.

  10. #1059
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,870
    Спасибо Благодарностей отдано 
    661
    Спасибо Благодарностей получено 
    1,866
    Поблагодарили
    1,063 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    а что мешает сперва проверять, потом делать инкремент/декремент?
    Чем эти варианты лучше? "Мертвая зона" есть, и такой декремент на байт длиннее.

    Варианты без "мертвой зоны":
    1. Декремент
    Код:
    	sub x+1
    	jr nc,$+3
    	xor a
    	adc a,x
    2. Инкремент
    Код:
    	add a,-x
    	jr nc,$+4
    	ld a,0
    	sbc a,-x-1
    Инкремент скорее всего можно сократить, надо подумать.

  11. #1060
    Member
    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    100
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Эти варианты имеют разную длительность. В первоначальном, 14-летней давности посте, это подчёркивалось.

Страница 106 из 110 ПерваяПервая ... 102103104105106107108109110 ПоследняяПоследняя

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

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

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

Похожие темы

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

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

Ваши права

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