Дано натуральное число п. Определите количество цифр в его записи - Assembler

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

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

б) Дано натуральное число п. Определите количество цифр в его записи.

Решение задачи: «Дано натуральное число п. Определите количество цифр в его записи»

textual
Листинг программы
    mov edx,n
    bsr eax,edx
    mov eax,table[eax*4]
    cmp eax,0Ah
    jbe a1
    sub eax,10h
    cmp edx,table1[eax*4]
    sbb eax,0
a1: . . .;в EAX количество десятичных цифр
.data
table dd 1,1,1,12h,2,2,13h,3,3,14h,4,4,4,15h,5,5,16h,6,6,17h,7,7,7,18h,8,8,19h,9,9,1Ah,10,10
table1 dd 0,0,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000

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

Код выполняет следующие действия:

  1. Переменная edx содержит натуральное число п.
  2. Выполняется операция сдвига вправо bsr eax,edx, где eax — переменная для хранения результата.
  3. Результат умножается на 4 и к нему добавляется адрес элемента в таблице table, соответствующего количеству цифр в числе. Полученное значение записывается в eax.
  4. Выполняется сравнение eax с 10 (0Ah), и если оно меньше или равно 10, то выполняется переход к метке a1.
  5. К eax вычитается 10 (10h), и затем выполняется сравнение edx с элементом таблицы table1, соответствующим новому значению eax. Если они равны, то к eax добавляется 1.
  6. Если ни одно из условий не выполняется, то в eax хранится количество десятичных цифр. Таблицы table и table1 содержат соответственно значения для подсчета количества цифр и их весов.

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


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

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

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