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

Вычисление целочисленных выражений

Цель работы: Вычислить заданное условное целочисленное выражение для данных в формате INTEGER (int), используя команды сравнения, условного и безус­ловного переходов. Результат X — тоже целочисленный и его диапазон (формат) зависит от специфики решаемого условного выражения. Исходные данные должны вводиться кор­ректно (с проверкой на область допустимых значений). Результат также должен быть про­верен на область допустимых значений. Данные должны передаваться в подпрограммы (функции) как параметры.
Порядок работы:

  1. внимательно изучить свой вариант арифметического выражения;
  2. написать на базовом алгоритмическом языке программу ввода исходных данных (с контролем допустимого диапазона), вычисления условного арифметического выражения и вывода полученного результата;
  3. написать модуль вычисления арифметического выражения на языке Ассемблера;
  4. встроить вызов этого модуля в программу на базовом алгоритмическом языке;
  5. произвести тестовые проверки, отметить нормальные и аномальные результаты, сделать анализ результатов.

 12)  X=                       

b/a+1             если    a > b

25                  если    a = b

(a^3-5)/b,      если    a < b


Program  Lab4P;
Uses CRT;

 Label
M1, M2 ,Merror,Mexit, L1;
var
a,b,xl, key:ShortInt;
x: integer;

Procedure ASMB;
Label
M1, M2 ,Merror,Mexit, L1;
begin
L1:
Write('Vvedite a   ===>');
Readln(a);
Write('Vvedite b   ===>');
Readln(b);
ASM

            mov     al, a
mov     bl, b
cmp     al, bl
jg M1
jl M2
mov     ax,25
jmp      MExit
M1:
cmp     al,0
je         MERROR
push ax
mov     al,bl
cbw
pop bx
idiv bl
inc        al
cbw
jmp      MExit
M2:
cmp     bl, 0
je         MERROR
imul       a
imul     a
add      ax, -5
idiv       bl
Mexit:
mov   word ptr xl,ax
Merror:
end;

            writeln('ASSEMBLER:');
if ((a=0)and(b<>0))or((a<>0)and(b=0)) then
writeln ('error')
else writeln('         x=',xl);

end;
Begin
repeat
clrscr;
ASMB;
writeln ('key 1=POVTOR 2=exit');
readln (key);
until key=2;
end.

Вернутся к заглавию

Сайт создан в системе uCoz