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

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

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

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

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

textual
Листинг программы
  1. .MODEL Tiny
  2. .286
  3. .CODE
  4. ORG 100h
  5.  
  6. Start:
  7.  
  8.    mov si,offset array  ; адрес массива
  9.    cld  ; прямой порядок чтения массив
  10.  
  11.    mov bx,ser  ; кол-во серий
  12. @loop:
  13.    mov cx,num  ; кол-во чисел в серии
  14. @1:lodsb  ; читаем первое число: al = ds:[si], si=si+1
  15.    or al,al
  16.    js @no  ; если отрицательное, то эта серия не подходит
  17.    loop @1  ; цикл чисел в серии
  18.    ; меняем местами, если все числа в серии неотрицательные
  19.    mov bl,[si-3]
  20.    mov [si-3],al
  21.    mov [si-1],bl
  22.    jmp @end  ; завершаем процесс
  23. @no:
  24.    dec cx
  25.    add si,cx  ; пропускаем оставшиеся числа текущей серии
  26.    dec bx
  27.    jnz @loop  ; цикл серий
  28.  
  29. @end:
  30.    int 20h  ; выход из программы
  31.  
  32. num = 3  ; кол-во чисел в серии
  33. array db 1,3,-4, -17,0,5, 3,0,27, -6,99,3, 80,2,7
  34. ser = ($-array)/num  ; кол-во серий
  35.  
  36. END Start

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


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

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

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы