ЛАБОРАТОРНА РОБОТА 1_1
з дисципліни “Системне програмування та операційні системи”
Тема: “ Робота з арифметичними командами та командами пересилання даних у мові програмування Асемблер”
Мета лабораторної роботи – ознайомитись з форматом команди мови Асемблер, вивчити арифметичні команди та команди пересилання даних.
Завдання
Дослідити формат команди мови Асемблера.
Вивчити арифметичні команди мови Асемблера.
Ознайомитись із правилами створення вбудованого асемблерного коду на мові Сі.
Написати програму на мові Сі, яка описує цілі змінні, здійснює їх ініціалізацію та виводить результат обчислень. За допомогою Асемблерного коду виконати обробку введених даних згідно з варіантом:
Різницю між добутком двох чисел та третім числом
#include<stdio.h>
#include<conio.h>
int main()
{
clrscr();
int a,b,c,res;
printf("Vvedite chislo a \n");
scanf("%d",&a);
printf("Vvedite chislo b \n");
scanf("%d",&b);
printf("Vvedite chislo c \n");
scanf("%d",&c);
_asm{
mov ax,a
add ax,b
mov ax,c
mov res,ax
}
printf("Resultat: %d ",res);
getch();
return 0;
}
Контрольні запитання
Поясніть механізм перетворення десяткового цілого значення на двійкове. Наведіть приклади.
Поясніть механізм перетворення двійкового цілого значення на десяткове. Наведіть приклади.
Розкрийте значення мови Асемблер.
Опишіть формат команди мови Асемблер.
Дайте загальну характеристику регістрів процесора.
Охарактеризуйте призначення та склад групи регістрів загального призначення.
Охарактеризуйте призначення та склад регістрів групи сегментних регістрів.
Охарактеризуйте призначення та склад регістрів групи індексних регістрів.