[TASM] Подсчитать количество цифр в тексте - Assembler

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

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

как подсчитать количество цифр в тексте? текст вводить с клавиатуры, на TASM-е!

Решение задачи: «[TASM] Подсчитать количество цифр в тексте»

textual
Листинг программы
  1. model   tiny
  2. .code
  3. org 100h
  4. start:
  5.     mov ah,9
  6.     lea dx,dbEnter
  7.     int 21h;Выводим запрос ввода строки
  8.     mov ah,0ah
  9.     lea dx,dbMax
  10.     int 21h;считываем строку
  11.     xor cx,cx
  12.     xor dx,dx
  13.     mov cl,dbLen;Заносим в регистор cx длину строки (лучше movzx cx,cl)
  14.     lea si,dbBuff регистре si адрес буфера
  15. isLoop: lodsb;Считываем очередной символ
  16.     cmp al,'0'
  17.     jb  noSimbol
  18.     cmp al,'9'
  19.     ja  noSimbol
  20.     inc dx;Если символ - цифра, увеличиваем счетчик в регистре dx
  21. noSimbol:
  22.     loop    isLoop;Цикл по всем символам строки
  23.     push    dx;Сохраняем количество цифр
  24.     mov ah,9
  25.     lea dx,dbResult
  26.     int 21h;Выводим сообщение
  27.     pop ax;Переносим число в регистр ax
  28.     mov bx,10
  29.     xor cx,cx;
  30. isDiv:  xor dx,dx
  31.     div bx
  32.     push    dx;Отделяем последнюю цифру, размещаем её в стеке
  33.     inc cx;Увеличиваем счетчик цифр, чтоб знать, сколько цифр доставать
  34.     or  ax,ax;Если ещё есть цифры для вывода (число не равно 0), то продолжаем деление
  35.     jnz isDiv
  36. isOut:  pop ax;Достаем очередную цифру (цифры достаются в обратном порядке, ибо стек
  37.     or  al,30h
  38.     int 29h;Выводим цифру через системный вызов
  39.     loop    isOut так для всех полученных цифр
  40.     xor ax,ax
  41.     int 16h;Ожидаем нажатие клавиши
  42.     ret;Завершаемся
  43. dbResult    db  10,13,'Result:$'
  44. dbEnter     db  10,13,'Enter text:$'
  45. dbMax       db  200
  46. dbLen       db  ?
  47. dbBuff      db  200 dup(?)
  48.     end start

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


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

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

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

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

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

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