Дано натуральное число п. Определите количество цифр в его записи - 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
Объяснение кода листинга программы
Код выполняет следующие действия:
- Переменная
edx
содержит натуральное числоп
. - Выполняется операция сдвига вправо
bsr eax,edx
, гдеeax
— переменная для хранения результата. - Результат умножается на 4 и к нему добавляется адрес элемента в таблице
table
, соответствующего количеству цифр в числе. Полученное значение записывается вeax
. - Выполняется сравнение
eax
с 10 (0Ah), и если оно меньше или равно 10, то выполняется переход к меткеa1
. - К
eax
вычитается 10 (10h), и затем выполняется сравнениеedx
с элементом таблицыtable1
, соответствующим новому значениюeax
. Если они равны, то кeax
добавляется 1. - Если ни одно из условий не выполняется, то в
eax
хранится количество десятичных цифр. Таблицыtable
иtable1
содержат соответственно значения для подсчета количества цифр и их весов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д