Добавление подстроки в строку после заданного символа + перевод с Tasm на intel - Assembler
Формулировка задачи:
В общем, вот такое задание "В исходную строку вставить после заданного символа все символы, предшествующие ему. Оставшуюся часть строки оставить без изменения.". То есть например есть строка abcdefg и символ d, то результат должен быть abcdabcefd. Написал код, чтобы скопировать строку из конкретного числа символов ( в моем случае 4 ). Как сделать поиск определенного символа ( без ввода с клавиатуры ) и вставить в него строку? Заранее спасибо
data segment s1 db 'test string$' s2 db 20 dup (' '),'$' s3 db 40 dup (' '),'$' data ends code segment start: assume cs:code, ds: data mov ax, data mov ds, ax mov es, ax ; cld ; mov AL,'r' ; mov CX,20 ; lea DI,s1 ; repne scasb ; jnz exit ;dec DI ;exit: ret cld lea si, s1 lea di, s2 mov cx, 4 ; номер найденного символа rep movsb mov ah, 09 lea dx, s2 int 21h mov ax, 4c00h int 21h code ends end start
Решение задачи: «Добавление подстроки в строку после заданного символа + перевод с Tasm на intel»
textual
Листинг программы
lea di,Строка
Объяснение кода листинга программы
- Переменная
Строка
содержит исходную строку - Код выполняет следующие действия:
- Получает адрес последней символа строки в переменной
di
(смещение) - Выполняет летучий вызов функции
AddStr
, передавая ей в качестве аргументов:- адрес последней символа строки в переменной
di
- адрес подстроки в переменной
si
- длину подстроки в переменной
cx
- адрес символа, после которого необходимо вставить подстроку, в переменной
dx
- адрес последней символа строки в переменной
- Получает адрес последней символа строки в переменной
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д