ЛАБОРАТОРНА РОБОТА 1_2
з дисципліни “Системне програмування та операційні системи”
Тема: “ Робота з арифметичними командами та командами пересилання даних у мові програмування Асемблер”

Виконав: студент № групи
2 курсу спеціальності
“ Інформаційні управляючі
системи та технології”

Мета лабораторної роботи – вивчити команди обробки масивів даних та передачі управління мови Асемблер.

Завдання
Вивчити механізм роботи команд обробки масивів даних мови  Асемблер.(табл.4)
Вивчити механізм роботи команд передачі управління мови Асемблер.(табл..4,5)
Написати програму на мові Сі, яка описує та ініціює одновимірний масив з 10 цілих значень і виводить результат його обробки. За допомогою вбудованого асемблерного коду виконати обробку введених даних згідно з варіантом:
Добуток максимального та мінімального елементів масиву

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
Int main()
{
clrscr();
int arr [10];
randomize();
for (int i=0; i<10; i++)
{
arr[i] = random(100);
cout<<arr[i]<<” “;
}
cout<<endl<<endl;
int min,  max;
_asm
{
lea si, arr
mov cx,10
mov ax,[si]
mov bx, [si]
}
ll:     _asm{
cmp[si],ax
jng next comp
mov ax, [si]
}
Next_comp: asm{
cmp [si],bx
jnl_loop
mov bx,[si]
}
_loop: asm{
add si,2
                   loop ll
mov max, ax
mov min,bx
}
cout<<”Result:”<<max-min;
getch();
return();
}

Контрольні запитання
Дайте загальну характеристику реального режиму роботи процесора.
Дайте загальну характеристику захищеного режиму роботи процесора.
Поясніть механізм  обчислення фізичного адресу в реальному режимі роботи процесора.
Поясніть механізм роюоти команд обробки масивів даних.
Розкрийте призначення та склад регістру стану процесора.
Охарактеризуйте умовні прапори регістру стану процесора.
Охарактеризуйте керуючі прапори регістру стану процесора.