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

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

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

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

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

textual
Листинг программы
    .model compact
; Сегмент стека
s_seg segment
    db 128 dup(?)
s_seg ends
 
; Сегмент данных
d_seg segment
    str_prompt db 'Enter string: $'
    str_result db 13,10,'Chars: $'  
    tab db 256 dup(0) ; массив всех возможных символов  
d_seg ends
 
; Сегмент сода
c_seg segment 'code'
    ; привязываем метки к адресам сегментов 
    assume ds:d_seg, ss:s_seg, cs:c_seg
main:
    ; устанавливаем сегмент стека
    mov ax, s_seg
    mov ss, ax
    ; устанавливаем сегмент данных  
    mov ax, d_seg
    mov ds, ax  
 
    
    ; печатем приглашение
    mov ah, 09h
    lea dx, str_prompt
    int 21h
 
    xor bx, bx  
@1: ; читаем символ
    mov ah, 01h
    int 21h
    ; проверяем конец строки
    cmp al, 13
    je @2
    ; отмечаем в таблице
    mov bl, al
    mov tab[bx], 1
    jmp @1  
 
    ; печатем результат
@2: mov ah, 09h
    lea dx, str_result
    int 21h
    
    mov cx, 256
    xor bx, bx
@3: ; проверяем отметку в таблице
    cmp tab[bx], 1
    jne @4
    ; печатаем символ
    mov ah, 02h
    mov dl, bl
    int 21h
    ; сдвигаемся по таблице 
@4: inc bx
    loop @3 
    
    ; выход из программы    
    mov ax, 4C00h
    int 21h      
c_seg ends
 
end main

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

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

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


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

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

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