Поменять элементы в обратном порядке в массиве - Assembler

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

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

Ребят, очень срочно!!!!!!! ПОМОГИТЕ ПЛИИИИИЗ!! В массиве в первой серии положительных элементов (серия – последовательность более трех подряд идущих элементов) поменять элементы в обратном порядке. НУЖНО ОЧЕНЬ СРОЧНО!!

Решение задачи: «Поменять элементы в обратном порядке в массиве»

textual
Листинг программы
.MODEL Tiny
.286
.CODE
ORG 100h
 
Start:
 
   mov si,offset array  ; адрес массива
   cld  ; прямой порядок чтения массив
 
   mov bx,ser  ; кол-во серий
@loop:
   mov cx,num  ; кол-во чисел в серии
@1:lodsb  ; читаем первое число: al = ds:[si], si=si+1
   or al,al
   js @no  ; если отрицательное, то эта серия не подходит
   loop @1  ; цикл чисел в серии
   ; меняем местами, если все числа в серии неотрицательные
   mov bl,[si-3]
   mov [si-3],al
   mov [si-1],bl
   jmp @end  ; завершаем процесс
@no:
   dec cx
   add si,cx  ; пропускаем оставшиеся числа текущей серии
   dec bx
   jnz @loop  ; цикл серий
 
@end:
   int 20h  ; выход из программы
 
num = 3  ; кол-во чисел в серии
array db 1,3,-4, -17,0,5, 3,0,27, -6,99,3, 80,2,7
ser = ($-array)/num  ; кол-во серий
 
END Start

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


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

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

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