Не получается правильно написать часть кода - 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
Объяснение кода листинга программы
- Переменная
cl
получает значениеN
(N - это константа) - Значение
cl
уменьшается на единицу (декремент) - Результат предыдущей операции (теперь в
cl
содержится значениеN-1
) сдвигается вправо на одну позицию (широкий сдвиг)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д