Задание (tasm-assembler) Пользователь вводит с клавиатуры строку символов

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

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

Помогите, пожалуйста. Разработать программу, решающую следующую задачу: Пользователь вводит с клавиатуры строку символов. Программа выводит на экран эти символы. TASM-ASSEMBLER

Решение задачи: «Задание (tasm-assembler) Пользователь вводит с клавиатуры строку символов»

textual
Листинг программы
  1.     .model compact
  2. ; Сегмент стека
  3. s_seg segment
  4.     db 128 dup(?)
  5. s_seg ends
  6.  
  7. ; Сегмент данных
  8. d_seg segment
  9.     str_prompt db 'Enter string: $'
  10.     str_result db 13,10,'Chars: $' 
  11.     tab db 256 dup(0) ; массив всех возможных символов 
  12. d_seg ends
  13.  
  14. ; Сегмент сода
  15. c_seg segment 'code'
  16.     ; привязываем метки к адресам сегментов
  17.     assume ds:d_seg, ss:s_seg, cs:c_seg
  18. main:
  19.     ; устанавливаем сегмент стека
  20.     mov ax, s_seg
  21.     mov ss, ax
  22.     ; устанавливаем сегмент данных 
  23.     mov ax, d_seg
  24.     mov ds, ax  
  25.  
  26.    
  27.     ; печатем приглашение
  28.     mov ah, 09h
  29.     lea dx, str_prompt
  30.     int 21h
  31.  
  32.     xor bx, bx 
  33. @1: ; читаем символ
  34.     mov ah, 01h
  35.     int 21h
  36.     ; проверяем конец строки
  37.     cmp al, 13
  38.     je @2
  39.     ; отмечаем в таблице
  40.     mov bl, al
  41.     mov tab[bx], 1
  42.     jmp @1 
  43.  
  44.     ; печатем результат
  45. @2: mov ah, 09h
  46.     lea dx, str_result
  47.     int 21h
  48.    
  49.     mov cx, 256
  50.     xor bx, bx
  51. @3: ; проверяем отметку в таблице
  52.     cmp tab[bx], 1
  53.     jne @4
  54.     ; печатаем символ
  55.     mov ah, 02h
  56.     mov dl, bl
  57.     int 21h
  58.     ; сдвигаемся по таблице
  59. @4: inc bx
  60.     loop @3
  61.    
  62.     ; выход из программы   
  63.     mov ax, 4C00h
  64.     int 21h      
  65. c_seg ends
  66.  
  67. end main

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

  1. Объявление сегментов данных, стека и кода
  2. Привязка сегментов к переменным
  3. Вывод приглашения для ввода строки
  4. Организация цикла для чтения символов из строки
  5. Проверка каждого символа на конец строки
  6. Отметка в таблице символов как прочитанного
  7. Вывод результата (количество символов)
  8. Организация цикла для проверки отметок в таблице
  9. Вывод символа, если он отмечен в таблице
  10. Сдвиг по таблице для проверки следующего символа
  11. Выход из программы

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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