+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Посчитать нули в слове

  1. #1
    beryllium is on a distinguished road
    Регистрация
    21.12.2006
    Возраст
    30
    Сообщений
    3
    Вес репутации
    0

    По умолчанию Посчитать нули в слове

    Подскажите пожалуйста, как посчитать количество нулей в слове? Может алгоритм какой есть(команда)?

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    system architect somewhere will become famous soon enough somewhere will become famous soon enough Аватар для somewhere
    Регистрация
    31.08.2006
    Адрес
    71 RUS
    Возраст
    35
    Сообщений
    1,837
    Вес репутации
    16

    По умолчанию Re: Посчитать нули в слове

    Алгоритм есть, как и у любой задачи. Способов довольно много, можно пользоваться сдвигом, а можно использовать другие инструкции:

    BTC op1, op2 (Bit Test and Compliment) - помещает инвертированное значение бита op1, указанного в op2 во флаг CF. Исходя из этого легко считаются нули:

    Код :
    1. ...
    2. mov ax, YourWord
    3. sub cx, cx
    4. @k1:
    5. btc ax, cl
    6. adc ch, 0
    7. inc cl
    8. cmp cl, 16
    9. jnz @k1
    10. ...

    На выходе в CH будет содержаться кол-во нулей.
    It's a long way to the top if you wanna rock'n'roll

  4. #3
    beryllium is on a distinguished road
    Регистрация
    21.12.2006
    Возраст
    30
    Сообщений
    3
    Вес репутации
    0

    По умолчанию Посчитать нули в слове

    Такой вариант у меня не прошел. TASM выдавал ошибку на строчке
    btc ax, cl
    Как я понял, команда btc для процессоров 386 и i486. Зато немного подумав, воспользовался сдвиговой операцией shr :
    mov ax, MyWord
    xor cx, cx
    xor dx, dx
    mov dx, 16
    mov cl, 1

    @k1:
    shr ax, cl
    adc ch, 0
    dec dx
    jnz @k1

    mov al,16
    sub al,ch
    В цикле посчитали единицы, а потом вычли их из 16 = количество нулей
    PS thanks developer за идею.

+ Ответить в теме

Похожие темы

  1. Как посчитать сумму выделеных ячеек DBGrid (DBGridEh)
    В Excel есть прибамбас, выделяем ячейки и если они числовые то в низу считается сумма всех выделеных ячеек. Вопрос: как реализовать такую же...
    от Snickbw в разделе Delphi и Pascal
  2. Посчитать сумму по строкам не изменяя файлы
    Есть несколько файлов (в одной папке с разными именами), у всех у них, допустим 1 лист (имя листа различное у всех файлов). Структура файлов...
    от Brat2005 в разделе MS Office и VB(A).

Ваши права

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