Добавление символа в конец введенной строки - Assembler

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

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

Очень нужна помощь, нужно в конец введенной строки поместить символ '$' чтобы не было зацикливания Как можно правильно это сделать?? Заранее спасибо!!
data segment
       str11 db 80, ?, 82 dup (?)                                             
data ends
code segment
assume cs: code, ds: data
start: mov ax,data 
    mov ds,ax  
    lea dx, str11
    mov ah, 0ah
    int 21h
   xor ah, ah 
   lea bx, str11+2
   xor cx, cx
   mov cl, str11+1 ; количество введенных символов
   mov bx, cx
   inc bx
   mov byte ptr [bx],'$'        ;Добавление символа '$'????? 
A1:  
  mov al, [BX] ; очередной символ строки
  cmp al,'.'
  jne  A2  
  mov al,' '  
  jmp  A3
  jmp  A2
  jmp  OUT1

A2: 
  mov si, [BX+1]
  inc bx  
  loop A1
 
A3: mov si, [BX+1]
  inc bx  
  mov dl, [BX]
  cmp dl, 97     ;СРАВНИВАЕМ С 97 97=a 
  jb A2          ;ЕСЛИ МЕНЬШЕ ЗАКАНЧИВАЕМ 
  cmp dl, 122    ;СРАВНИВАЕМ С 122 122=z 
  ja A2          ;ЕСЛИ БОЛЬШЕ ЗАКАНЧИВАЕМ  
  sub dl, 32
  mov bl, dl 
  dec bx
  mov si, [BX-1]
  jmp A1

OUT1: 
  lea dx, str11 
  mov ah, 09h 
  int 21h 
  mov ax, 4C00h 
  int 21h 
code ends
end start

Решение задачи: «Добавление символа в конец введенной строки»

textual
Листинг программы
lea dx, str11;*
mov ah, 09h 
int 21h

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

  1. str11 - это переменная типа строка, в которую будет добавляться символ.
  2. dx - это регистр, используемый для хранения адреса строки str11.
  3. ah - это регистр, используемый для хранения кода функции, которую нужно выполнить (в данном случае 09h - функция вывода строки).
  4. int 21h - это команда, которая выполняет функцию, хранящуюся в регистре ah, с использованием регистра dx как параметра. В данном случае выводит строку str11 на экран.

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


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

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

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