В массиве удалить элементы, меньшие среднего арифметического элементов массива - Assembler
Формулировка задачи:
"В массиве удалить элементы, меньшие среднего арифметического элементов массива."
Надо написать самым простым способом
Решение задачи: «В массиве удалить элементы, меньшие среднего арифметического элементов массива»
textual
Листинг программы
- ;fasm code...
- org 100h
- jmp start
- array db 22,7,12,18,5,13,8,23,2,14
- len = $ - array ; длина массива = текущий адрес, минус адрес начала массива
- start: mov si,array ; SI для LODSB
- mov cx,len ;
- xor bx,bx ;
- summ: lodsb ;
- add bx,ax ; ВХ = сумма
- loop summ ;
- xchg ax,bx ;
- mov bx,len ;
- xor dx,dx ;
- div bx ;
- xchg ax,dx ; DX = среднее
- mov cx,bx ;
- sub si,cx ;
- mov di,si ; SI/DI = адрес массива
- newAr: lodsb ;
- cmp al,dl ;
- jbe fuck ; пропустить, если AL меньше/равно среднего
- stosb ; иначе: перезапись массива значением из AL
- fuck: loop newAr ;
- xor al,al ; вставляем маркер конца массива
- stosb ;
- xor ax,ax ;
- int 16h ;
- ret ;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д