Лабораторная Работа №1 - "Вычисление Целочисленных Арифметических Выражений."
Цель работы:
Вычислить заданное целочисленное выражение для исходных данных в
знаковых и беззнаковых форматах длиной 8 и 16 бит:
signed char,
unsigned char и
signed int ,
unsigned int , используя арифметические операции
ADD,
ADC,
INC,
SUB,
SBB
, DEC,
NEG,
MUL,
IMUL,
DIV,
IDIV
,
CBW,
CWD.
Исходные значения переменных вводятся пользователем с клавиатуры. Они должны
быть максимально приближены к максимально-возможным для тех типов данных, с
которыми решается задача. При вводе данных рекомендуется вывести диапазон
возможных значений. Размер и тип числителя, знаменителя и результата зависит
от заданного выражения.
Порядок работы:
- Внимательно изучить свой вариант арифметического выражения;
- Для каждого из перечисленных 4 типов данных написать ASM - модули
вычисления арифметического выражения;
- Вызовы этих модулей должны осуществляться из модулей, написанных на языке
Си, в которых должен осуществляться ввод исходных данных и вывод
результатов. Модули на языке Си должны обеспечивать вычисление данного
выражения на языке Си для проверки результатов и вызов ASM -
модуля для вычисления заданного выражения. Программа на языке Си
должна вывести на экран числитель, знаменатель и результат
вычисления на языке Си, а также числитель, знаменатель
и результат вычисления на языке ASM. Обмен данными между
Си и ASM - модулем должен осуществляться через глобальные
переменные, определенные в модуле Си.
Варианты Заданий:
Вариант № |
Арифметическое выражение |
1 |
(3*c+8-d)/(a-c/4) |
2 |
(b+3*c+1)/(b/a-2) |
3 |
(a*a-b+2)/(7*c/2-1) |
4 |
(55-b+1*a)/(-88/c+1) |
5 |
(4*b-36*a)/(b+c/a-1) |
6 |
(-17*a+32-b)/(c-a*c/b) |
7 |
(b*c-8/a)/(31+b-1) |
8 |
(a*a-2+c)/(c+22/b) |
9 |
(53+c*2-1)/(b-a+4) |
10 |
(c-33+8*d)/(122/b+1) |
11 |
(2*d-96/a)/(34/b-a+1) |
12 |
(a+b*c-1)/(a/3+1) |
13 |
(44+c*d-15)/(a+c-6) |
14 |
(a*2+113/c)/(a-c*b/3) |
15 |
(b*2+c/25)/(a+a/b-1) |
16 |
(b*7+64/a)/(31-c*b/2) |
17 |
(-74/a+c-5)/(1+c*b/2) |
18 |
(c*149+b*b)/(a+b-117) |
19 |
(-35/b+d-b)/(1+a*b/4) |
20 |
(c*3+a*54)/(d+a-1) |
21 |
(4*c-a/3+11)/(1+a-b) |
22 |
(1+7*b/2)/(a+b*2/d) |
23 |
(2*a/b-1)/(a-28+c) |
24 |
(22/c+3*b)/(36-a*c/3) |
25 |
(44/a*b+1)/(b-a*9/2) |
26 |
(-3*a-b+53)/(c-a/2+1) |
27 |
(b-28/a+54)/(140/b+c-1) |
28 |
(a+b*c-23)/(1+c/5-a) |
29 |
(14*b-16/a)/(b-c+1) |
30 |
(a*20+c-8)/(4*d/3-a) |
31 |
(89*b-d/4)/(b+d+a-1) |
32 |
(86/b-19+a)/(a*d/3-1) |
33 |
(7*d/4-1)/(1+32/c+d) |
34 |
(-26*a+d*89)/(a/6+1) |
35 |
(2*d-1+b/2)/(a*a/2+d) |
36 |
(7*b-54+a)/(25/c-1+c) |
Методические указания:
Перед выполнением Лабораторной Работы №1 необходимо ознакомится с параграфами:
Контрольные вопросы и задания: