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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: asm: x mod 3 ?

  1. #1
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию asm: x mod 3 ?

    собственно сабж
    x mod 2 можем сделать сдвигом || and 1
    a мод 3?
    "наличие готового программного обеспечения для нового компьютера в наши дни имеет мало смысла."
    "Еще вопрос - почему на Спектруме большинство звуков на AY булькающие ? Как это исправить ?"
    (c) zst

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

  3. #2
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    ;in A - number
    ;out A - number mod 3
      ld c,#c0
    loop:
      sub c
      jz exit
      jnc,nxt
      add a,c
    nxt:
      rr c
      jnc,loop
    exit:
    но надо проверить- могу и наглючить

  4. #3
    Activist
    Регистрация
    19.04.2005
    Адрес
    SPb
    Сообщений
    313
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    хм, я приблизительно умножал на 85, делил на 256 (выкидывал младший байт)
    точность 1/256, вполне катит.
    Куплю в СПб 5.25" Robotron или Teac

  5. #4
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    в общих чертах ясно.
    спасибо, ребята!
    "наличие готового программного обеспечения для нового компьютера в наши дни имеет мало смысла."
    "Еще вопрос - почему на Спектруме большинство звуков на AY булькающие ? Как это исправить ?"
    (c) zst

  6. #5
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от research Посмотреть сообщение
    хм, я приблизительно умножал на 85, делил на 256 (выкидывал младший байт)
    точность 1/256, вполне катит.
    я тоже так делаю. Самый быстрый способ. Для разных делителей только разное число, которое потом делится на 256.

  7. #6
    Activist
    Регистрация
    19.04.2005
    Адрес
    SPb
    Сообщений
    313
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну да, дробные числа получаются по основанию 256. Деление на 256 - выкинуть младший байт, а умножение на константу - копеечное дело.

    Жаль, в вузах нас этому не учили. Тот же Брезенхейм казался прям эдакой загадкой. Потом, когда я занялся цифровым синтезом, сам понял, что вот они, дроби (по сути).
    Куплю в СПб 5.25" Robotron или Teac

  8. #7
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    но надо проверить- могу и наглючить
    Очень красиво. Так ведь можно и на другие делители MOD делать, главное чтобы младший бит остатка был равен единице (нечётное число).
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  9. #8
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    Очень красиво. Так ведь можно и на другие делители MOD делать, главное чтобы младший бит остатка был равен единице (нечётное число).
    Никаких условий не надо- это обычный алгоритм деления, только на фиксированное число и с игнорированием частного. Делитель должен быть выровнен по левому краю.

  10. #9
    Veteran Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    23 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А есть быстрый алгоритм деления числа (байта) на 3? Желательно без таблиц.

  11. #10
    Guru
    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Умножить на 85 (%1010101) и сдвинуть на 8 бит.
    ;l=число
    ld h,0
    ld d,h,e,l
    add hl,hl ;*2
    add hl,hl ;*4
    add hl,de ;*5
    add hl,hl ;*10
    add hl,hl ;*20
    add hl,de ;*21
    add hl,hl ;*42
    add hl,hl ;*84
    add hl,de ;*85
    ;h=результат

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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