Не получается правильно написать часть кода - Assembler

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

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

Долго мучаюсь с этой программой.Помогите пожалуйста! Дан массив символов A1,…A2n. Напечатать последовательность A1,An+1,A2,An+2,...,An, A2n.
.model small
.stack 100h
.data
massiv db      4,5,6,2,8,4,6,9       
massiv2 db    10 dup (0)            
N   db 8
.code
START:  mov ax,@data 
             mov ds,ax 
             mov ch,0
             mov cl,n                                 
             mov si,offset massiv                
             mov di,offset massiv2                 ; здесь будет новый, преобразованный массив
m1:        lodsb                                         ; разреживаем строку символов, так что элементы располагаются в                       памяти через 2 байта
             loop m1
            mov cl,massiv+1
            mov si,offset massiv2
            add si,cx                                     ; смещаемся на середину строки к элементу A(n+1)
            mov di,offset massiv2+1                ; и переносим его на 2-ую позицию
m2:       movsb
            inc di
           inc si
           loop m2
           mov dx,offset massiv2                
           int 21h

Решение задачи: «Не получается правильно написать часть кода»

textual
Листинг программы
mov cl,N
dec cl
shr cl,1

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

  1. Переменная cl получает значение N (N - это константа)
  2. Значение cl уменьшается на единицу (декремент)
  3. Результат предыдущей операции (теперь в cl содержится значение N-1) сдвигается вправо на одну позицию (широкий сдвиг)

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


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

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

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