13336

Обробка масивів у мові асемблер

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторна робота №2 Тема:Обробка масивів. Мета:Навчитися описувати масиви у мові асемблер; набути навиків використання масивів їх обробки та виводу на екран. Завдання згідно варіанту: Описати масив розмірністю N10 де N порядковий номер студента у журналі сто...

Украинкский

2013-05-11

26.6 KB

26 чел.

Лабораторна робота №2

Тема: Обробка масивів.

Мета: Навчитися описувати масиви у мові асемблер;

набути навиків використання масивів, їх обробки та виводу на екран.

Завдання згідно варіанту:

Описати масив розмірністю N+10, де N – порядковий номер студента у журналі (сторінка лабораторних робіт). Номер варіанту, це залишок від ділення N на 4 націло.

Варіант 0. Знайти суму парних елементів масиву, якщо результат ділення N на 4 націло парне число, інакше знайти суму непарних.

Варіант 1. Знайти максимальне значення з усіх від’ємних елементів масиву, якщо результат ділення N на 4 націло парне число, інакше додатних.

Варіант 2. Знайти мінімальне значення з усіх елементів масиву чиї номера парні, якщо результат ділення N на 4 націло парне число, інакше тих, чиї номера непарні.

Варіант 4. Знайти суму максимального та мінімального елементу масиву, якщо результат ділення N на 4 націло парне число, інакше знайти різницю.

Приклад:

Знайти максимальне значення з усіх від’ємних елементів масиву, якщо результат ділення N на 4 націло парне число, інакше додатних

model small

.stack 100h

.data

   mas    db   15,-5,10,2,-14,-3,-4,8,-9,56,11,-8,-7,10,-15

.code

   start:  mov ax,@data

           mov ds,ax

           mov si,0

           mov bl,mas[si]

           mov dl,mas[si]

           mov cx,15

   cycl:   cmp mas[si],0

           jl  Negat

           jge Posit

   negat:  cmp mas[si],dl

           jl  next

           mov dl,mas[si]

   posit:  cmp mas[si],bl

           jl  next

           mov bl,mas[si]

   next:   inc si

           loop cycl

   exit:   mov ax,4c00h

           int 21h

end         start

Результати відладки програми:

В результаті виконання програми в регістр bl (знаходиться максимальний додатний елемент масиву) занеслося 3816 = 5610, в регістр dl (знаходяться максимальний від’ємний елемент масиву) занеслося fffd16 старша частина (знаковий розряд в регістрі dh) – ffff16, що в десятковій системі числення дорівнює –3

Зміст звіту:

  1.  Номер роботи.
  2.  Тема.
  3.  Мета.
  4.  Завдання згідно варіанту.
  5.  Текст програми.
  6.  Результати відладки.
  7.  Висновки.

Контрольні запитання:

  1.  Як описати масив в мові асемблер?
  2.  Які методи адресації пам’яті передбачені мікропроцесором?
  3.  Описати способи ініціалізації елементів масиву.
  4.  Які алгоритми використовуються при обробці масивів?
  5.  Навести приклад програми для обробки масиву.
  6.  Яким чином розташовуються в пам’яті елементи двомірного масиву?


 

А также другие работы, которые могут Вас заинтересовать

69726. Віртуальні функції 33 KB
  Кожне перевизначення віртуальної функції в похідному класі реалізує операції властиві лише даному класу. Покажчики на об’єкти базового класу можна використовувати для посилання на об’єкти похідних класів.
69727. Чисто віртуальні функції 21 KB
  Проте у багатьох випадках неможливо створити розумну версію віртуальної функції в базовому класі. Для цих ситуацій в мові С передбачені чисто віртуальні функції. Для оголошення чисто віртуальної функції використовується наступна синтаксична конструкція.
69729. Включення файлів 25.5 KB
  Наприклад загальні для декількох початкових файлів визначення іменованих констант і макровизначення можуть бути зібрані в одному файлі що включається і включені директивою include у всі початкові файли.
69730. Параметри функції main( ) 32 KB
  Параметр argv - масив покажчиків на рядки; argc - параметр типа int, значення якого визначає розмір масиву argv, тобто кількість його елементів, envp - параметр-масив покажчиків на, символьні рядки, кожна з яких містить опис однієї із змінних середовища (оточення).
69731. Функції перетворення 55 KB
  Повертає дробове число, значення якого передано функції як аргумент. Функція обробляє рядок до тих пір, поки символи рядка є допустимими. Рядок може бути значенням числа як у форматі з плаваючою крапкою, так і в експоненціальному форматі.
69732. Статичні елементи класу 25.5 KB
  Пам’ять під статичне поле виділяється один раз при його ініціалізації незалежно від числа створених об’єктів і навіть при їх відсутності і ініціалізується за допомогою операції доступу до області дії а не операції вибору визначення повинне бути записано поза функціями...
69733. Покажчик this 22.5 KB
  Кожний об’єкт містить свій екземпляр полів класу. Методи класу знаходяться в пам’яті в єдиному екземплярі і використовуються всіма об’єктами сумісно, тому необхідно забезпечити роботу методів з полями саме того об’єкта, для якого вони були викликані.
69734. Перевантаження операцій new і delete 50.5 KB
  Поведінка перевантажених операцій повинна відповідати діям, які виконуються ними за замовчуванням. Для операції new це означає, що вона повинна повертати правильне значення, коректно обробляти запит на виділення пам’яті нульового розміру і породжувати виключення при неможливості...