Лабораторная Работа №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 необходимо ознакомится с параграфами:
Контрольные вопросы и задания: