Подсчитать количество двоичных единиц в двоичном представлении заданного целого неотрицательного числа - Assembler

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

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

Нужно написать программу на ассемблере, чтобы работа в SASM. Задача: Подсчитать количество двоичных единиц в двоичном представлении заданного целого неотрицательного числа

Решение задачи: «Подсчитать количество двоичных единиц в двоичном представлении заданного целого неотрицательного числа»

textual
Листинг программы
 model tiny
 codeseg
 org 100h
 
start:
 xor bx,bx
 mov ax,1234 ;число
 mov cx,16
 
;цикл
k1:
 ror  ax,1  ;чтобы исходное значение осталось неизменным
 adc  bx,0
 loop k1
 
;ответ в bx 
 ret
 
end start

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

Выполняемый код на ассемблере, который подсчитывает количество двоичных единиц в двоичном представлении заданного целого неотрицательного числа 1234, можно разбить на следующие шаги:

  1. Инициализация счётчика двоичных единиц в регистре bx (xor bx, bx).
  2. Загрузка числа 1234 в регистр ax (mov ax, 1234).
  3. Установка счётчика двоичных единиц в 0 (mov cx, 16).
  4. Вход в цикл k1 (loop k1).
  5. Сдвиг двоичного представления числа вправо на один разряд (ror ax, 1).
  6. Обновление счётчика двоичных единиц (adc bx, 0).
  7. Повторение шагов 5-6 до тех пор, пока счётчик не достигнет нуля (16 раз).
  8. Возврат результата подсчёта в регистре bx (ret).

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


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

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

11   голосов , оценка 4.091 из 5
Похожие ответы