User Tag List

Страница 63 из 113 ПерваяПервая ... 596061626364656667 ... ПоследняяПоследняя
Показано с 621 по 630 из 1128

Тема: ЭТЮДЫ

  1. #621

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

    По умолчанию

    Как вариант:
    Код:
                    xor a
                    sbc hl,de
                    jr z,exit
                    rlc h
                    sbc a,a
                    or 1
    exit:
    Последний раз редактировалось Destr; 04.09.2015 в 22:52.

  2. #622

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Как вариант:
    да неплохо - из минусов что рег H меняется и флаг переполнения теряется, но если для условий задачи это неважно, то этот вариант видимо самый быстрый.

  3. #623

    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    rlc h -> ld a,h:rla

  4. #624

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

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Никогда не использовал daa, заставило разобраться как именно она работает.
    Ещё тогда (05.09.2015) насторожило.
    И жило где-то внутри, грызло - чёрт, где-то я это видел...
    И вот на днях штудируя и упорядочивая прессу - наткнулся:

    " Работая на ассемблере уже несколько лет, я долгое время так и не знал
    принципа работы (стыдобушка!) команды DAA (#27). Но вот недавно, загрузив
    непревзойденный STS, я наконец детально разобрался в алгоритме работы этой
    операции, чем и делюсь с теми, кто по каким-то причинам до сих пор этого не
    сделал.
    На работу команды влияют флаги C,H,N, а также содержимое регистра A.
    Алгоритм:
    1. Если флаг N выключен (равен 0), то в последующих шагах выполняется операция
    сложения. Если же включен (равен 1), то операция вычитания.
    2. Если аккумулятор больше #90 или флаг C включен, то к аккумулятору
    прибавляется (вычитается) #60. Здесь не случайно написано "или". Если и
    A>#90, и CF=1, то сложение (вычитание) #60 происходит всего лишь один раз.
    3. Если младший полубайт больше #9 или флаг H включен, то аналогично п.2 к
    аккумулятору прибавляется (вычитается) #06. Здесь также работает принцип
    OR."

    Пруф: http://zxpress.ru/book_articles.php?id=671

    От себя могу добавить следующее:
    1. Уже в те времена не знать как работает DAA считалось неприличным ("стыдобушка")
    2. Уже сейчас только krt17, "Никогда не использовал daa, заставило разобраться как именно она работает.
    3. Я лично так и не прочувствовал все тонкости работы этой команды.

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

  5. #625

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

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    По хорошему немало площади z80 убили на это daa и флаг половинного переноса, могли бы что нибудь по прикольнее придумать, вернее даже не z80 а 8080.
    Но они видимо предвидели (читай "предполагали") будущее.
    Когда преобразования встанут ребром.
    Я счаз работаю с ПЛК, там порой нужно привести сигнал из аналогового уровня к процентному (например. или к примеру дольному)
    Ну и как этот IEEE (скажем 4.0073+e004) превратить в вид для человеков?
    Вот и вспомнил DAA (не помогло сразу, но ведь есть TRUNC) !

  6. #626

    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Видимо чел так и не разобрался или не смог изложить правильно. Там если старший полубайт >9 а не весь байт >90. Ну и по чесноку, и после того как разобрался, использовать не начал По хорошему немало площади z80 убили на это daa и флаг половинного переноса, могли бы что нибудь по прикольнее придумать, вернее даже не z80 а 8080.
    четай попусту не балтай

    савсем глюпий штоли, да?

    старший полубайт > 9
    это и есть "байт больше #90", как написано

  7. #627

    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ладно, уговорил
    "старший полубайт" значит.

  8. #628

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    По хорошему немало площади z80 убили на это daa и флаг половинного переноса, могли бы что нибудь по прикольнее придумать, вернее даже не z80 а 8080.
    Область применения DAA весьма специфическая, но есть. Тот же BASIC'овский PRINT n (а, вернее говроя, STR$, на базе которой работает PRINT) без него было бы ощутимо тормознее. Говорят, DAA используется в играх во всяких десятичных счетчиках.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  9. #629

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Говорят, DAA используется в играх во всяких десятичных счетчиках.
    Я как закоренелый читер частенько натыкаюсь на DAA когда выцепляю всякие вывод жизней и прочее на экран. Так что для ассемблера DAA тоже не редкость. Даже в своей проге как-то юзал. Но не прочухал до конца, как она работает. Вот-бы схему увидеть (логическую) как оно устроено...
    Есть у нас умельцы нарисовать? (или готовая у кого завалялась?)

  10. #630

    Регистрация
    05.09.2007
    Адрес
    Орск
    Сообщений
    1,071
    Спасибо Благодарностей отдано 
    269
    Спасибо Благодарностей получено 
    1,245
    Поблагодарили
    370 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нажмите на изображение для увеличения. 

Название:	01.jpg 
Просмотров:	460 
Размер:	59.1 Кб 
ID:	53939

    Нажмите на изображение для увеличения. 

Название:	03.jpg 
Просмотров:	356 
Размер:	55.4 Кб 
ID:	53940

    Пример:
    Код:
    ld a,%00010101 ;(15)
    ld c,%00111001 ;(39)
    add a,c ;a=%01001110 (4E)
    daa      ;a=%01010100 (54)
    вызывается после операций сложения/вычитания чисел в BCD формате, для коррекции результата
    Последний раз редактировалось LW; 01.11.2015 в 13:52.

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

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

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

Эту тему просматривают: 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

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

Ваши права

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