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