Образовать строку, повторив фрагмент исходной строки требуемое число раз - Assembler

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

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

Добрый вечер. Ребят прошу помощи, голову уже сломали с напарником. Не знаем как выполнить задания. Может кто подскажет или поможет. 1. Образовать строку, повторив фрагмент исходной строки с заданной позиции данной длины требуемое число раз. 2. Написать программу, которая бы инвертировала исходную строку

Решение задачи: «Образовать строку, повторив фрагмент исходной строки требуемое число раз»

textual
Листинг программы
model tiny
.code
org 100h
start:  mov ah,9
    lea dx,dbMes
    int 21h
;
    mov ah,10
    lea dx,dbMax
    int 21h
;I
    lea si,dbMax+2
    lea di,dbBuf+2
    xor cx,cx
    mov cl,dbIndex
    add si,cx
    mov cl,dbCount
    cld
@@00:   push    cx
    push    si
    mov cl,dbLen
    rep movsb
    pop si
    pop cx
    loop    @@00
    mov byte ptr[di],'$'
    mov ah,9
    lea dx,dbBuf
    int 21h
;II
    lea si,dbMax
    lodsw
    xor cx,cx
    mov cl,ah
    mov di,si
    add di,cx
    mov byte ptr[di],'$'
@@01:   dec di
    mov al,[si]
    xchg    al,[di]
    mov [si],al
    inc si
    cmp si,di
    jb  @@01
    mov word ptr[dbMax],': '
    mov ah,9
    lea dx,dbRes
    int 21h
    ret
dbIndex db  5
dbLen   db  10
dbCount db  6
dbMes   db  10,13,'Enter string:$'
dbRes   db  10,13,'Result     '
dbMax   db  200,?,200 dup(?)
dbBuf   db  10,13
end start

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

В этом коде выполняется следующая последовательность действий:

  1. Код считывает строку, введенную пользователем, и сохраняет ее в буфере.
  2. Затем код повторяет определенный фрагмент строки, используя этот буфер, пока не будет достигнута требуемая длина.
  3. После этого код выводит полученную строку на экран. Список действий:
  4. Код подготавливает модель памяти и определяет точку входа в программу.
  5. Код считывает строку, введенную пользователем, и сохраняет ее в буфере.
  6. Код повторяет определенный фрагмент строки, используя этот буфер, пока не будет достигнута требуемая длина.
  7. Код выводит полученную строку на экран.
  8. Код завершает программу.

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

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