Обработка целочисленного массива (поиск минимума, удаление элемента и т.д.) - Assembler

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

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

Помогите кто может, работа с массивами 1) найти минимальный нечетный элемент; 2) удалить все такие элементы; 3) подсчитать количество повторяющихся элементов массива. 4) найти среднее арифметическое нечетных элементов; 5) удалить элемент, наиболее удаленный от среднего арифметического; 6) найти максимальный неповторяющийся элемент.

Решение задачи: «Обработка целочисленного массива (поиск минимума, удаление элемента и т.д.)»

textual
Листинг программы
  1. org 100h
  2.     push  arr decOut start
  3.     ret
  4.     align 16
  5. arr   db  16 dup(0)
  6.  
  7. start:
  8. ; заполняем массив случайным образом (max.99d)
  9.     mov   cx,16
  10.     pop   si di
  11.     push  cx di
  12. @@: lodsb
  13.     cmp   al,99
  14.     ja    @b
  15.     stosb
  16.     loop  @b
  17. ; выводим его на экран
  18.     mov   dx,m0
  19.     call  message
  20.     pop   si cx
  21.     push  cx si
  22. @@: cbw
  23.     lodsb
  24.     call  decOut
  25.     loop  @b
  26. ; 1) найти минимальный нечетный элемент; ------------
  27.     mov   dx,m1
  28.     call  message
  29.     pop   si cx
  30.     push  cx si
  31.     cbw
  32.     dec   ah
  33. @@: lodsb
  34.     cmp   ah,al
  35.     jb    @1
  36.     test  al,1
  37.     jz    @1
  38.     xchg  ah,al
  39. @1: loop  @b
  40.     shr   ax,8
  41.     call  decOut
  42. ; 2) удалить все нечётные элементы; -----------------
  43.     mov   dx,m2
  44.     call  message
  45.     pop   si cx
  46.     push  cx si
  47. @@: lodsb
  48.     test  al,1
  49.     jnz   @2
  50.     call  decOut
  51. @2: loop  @b
  52. ; 4) найти средне/арифметическое нечетных элементов;
  53.     mov   dx,m3
  54.     call  message
  55.     pop   si cx
  56.     xor   ax,ax
  57.     cwd
  58. @@: lodsb
  59.     test  al,1
  60.     jz    @3
  61.     inc   bp
  62.     add   dx,ax
  63. @3: loop  @b
  64.     xchg  ax,dx
  65.     xor   dx,dx
  66.     div   bp
  67.     call  decOut
  68. ;------------------------------------
  69.     xor   ax,ax
  70.     int   16h
  71.     ret
  72.  
  73. m0  db  13,10,'  Array: $'
  74. m1  db  13,10,'Odd Min: $'
  75. m2  db  13,10,'Del odd: $'
  76. m3  db  13,10,'Average: $'
  77.  
  78. ;ннннннннннннннннннннннннннннннннннннннннннннннннн
  79. message:
  80.     mov   ah,9
  81.     int   21h
  82. ret
  83. decOut:
  84.     aam
  85.     add   ax,3030h
  86.     xchg  ah,al
  87.     int   29h
  88.     shr   ax,8
  89.     int   29h
  90.     mov   al,' '
  91.     int   29h
  92. ret

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


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

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

9   голосов , оценка 3.667 из 5

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

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

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