Подсчитать число единиц в заданном слове - Assembler

Узнай цену своей работы

Формулировка задачи:

Подсчитать число единиц в заданном слове.

Решение задачи: «Подсчитать число единиц в заданном слове»

textual
Листинг программы
  1. .model small
  2.  
  3. .stack 100h
  4.  
  5. .data
  6.         CrLf    db      0Dh, 0Ah, '$'
  7.         X       dw      1234h
  8.         Count   dw      0
  9. .code
  10.  
  11. main    proc
  12.         mov     ax,     @data
  13.         mov     ds,     ax
  14.  
  15.         mov     ax,     X       ;заданное слово
  16.         mov     bx,     0       ;число единичных бит в слове
  17.         mov     cx,     16      ;размер слова в битах
  18. @@For:
  19.         shl     ax,     1       ;выделение очередного бита
  20.         adc     bx,     0
  21.  
  22.         loop    @@For
  23.         mov     Count,  bx
  24.  
  25.  
  26.         mov     ax,     4C00h
  27.         int     21h
  28. main    endp
  29.  
  30. end     main

Объяснение кода листинга программы

  1. Объявлены переменные: — CrLf (символьный) — строка, содержащая символы перевода строки; — X (дробное) — содержит заданное слово; — Count (целочисленное) — счётчик числа единиц.
  2. Задано значение регистрам: — AX — содержит байт, в котором при помощи операции сдвига выделен очередной бит; — BX — инициализируется нулём и используется как счётчик числа единиц; — CX — содержит размер слова в битах.
  3. Используется цикл «For» для перебора всех битов заданного слова: — В каждой итерации очередная единица сдвигается в старшую позицию, при этом в BX устанавливается 1; — После каждой итерации счётчик BX увеличивается на единицу.
  4. После выполнения цикла значение счётчика BX сохраняется в переменной Count.
  5. Выполняется переход в начало цикла.
  6. Выводится сообщение об успешном выполнении программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы