Поменять элементы в обратном порядке в массиве - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д