Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Листинг программы. 
Тест на быстродействие микропроцессора

РефератПомощь в написанииУзнать стоимостьмоей работы

Writeln ('Время выполнения умножения на Pascal: ',(time2-time1):6:12); Writeln ('Время выполнения сложения на Pascal: ',(time2-time1):6:12); Write ('Введите сумму ряда, не более 2-х байт (65 535:)'); Procedure Mul_Pascal (N:word); {Умножение на Assembler}. Procedure Add_Pascal (N:word); {Сложение на Pascal}. In al, 40h {Конечное количество тиков}. Mov bl, al {Конечное количество тиков}. Mov bl… Читать ещё >

Листинг программы. Тест на быстродействие микропроцессора (реферат, курсовая, диплом, контрольная)

Program Test_of_CPU_for_Zuev;

uses crt;

var.

vid:byte;

t1,t2,NN:word;

time1,time2:real;

Procedure Add_Pascal (N:word); {Сложение на Pascal}.

var i: word;

Summa:integer;

Begin.

summa:=0;

t1:=0;

t2:=0;

asm.

in al, 40h.

mov bl, al.

in al, 40h {Считываем начальное значение тиков от таймера}.

mov bh, al.

mov t1, bx.

end;

for i:=1 to N do.

summa:=summa+i;

asm.

in al, 40h.

mov bl, al {Конечное количество тиков}.

in al, 40h.

mov bh, al.

mov t2, bx.

end;

Time1:=t1/(65 536*18.2);

time2:=t2/(65 536*18.2);

writeln ('Время выполнения сложения на Pascal: ',(time2-time1):6:12);

end;

Procedure Add_Asm (N:word);

var i: word;

Proisv:integer;

Begin.

t1:=0;

t2:=0;

asm.

in al, 40h.

mov ah, al.

in al, 40h.

xchg ah, al.

mov t1, ax.

xor ax, ax.

xor dx, dx.

@@q: {Выполняем сложение}.

inc dx.

add ax, dx.

loop @@q.

in al, 40h.

mov cl, al.

in al, 40h.

mov ch, al.

mov t2, cx.

end;

Time1:=t1/(65 536*18.2);

time2:=t2/(65 536*18.2);

writeln ('Время выполнения сложения на Assembler: ',(time2-time1):6:12);

end;

{=====================================================}.

Procedure Mul_Pascal (N:word); {Умножение на Assembler}.

var i: word;

Proisv:integer;

Begin.

t1:=0;t2:=0;

asm.

in al, 40h.

mov bl, al.

in al, 40h {Считываем начальное значение тиков от таймера}.

mov bh, al.

mov t1, bx.

end;

for i:=1 to N do.

proisv:=proisv*i;

asm.

in al, 40h.

mov bl, al {Конечное количество тиков}.

in al, 40h.

mov bh, al.

mov t2, bx.

end;

Time1:=t1/(65 536*18.2);

time2:=t2/(65 536*18.2);

writeln ('Время выполнения умножения на Pascal: ',(time2-time1):6:12);

end;

Procedure Mul_Asm (N:word);

var Proisv: integer;

Begin.

t1:=0;

t2:=0;

asm.

in al, 40h.

mov bl, al.

in al, 40h {Считываем начальное значение тиков от таймера}.

mov bh, al.

mov t1, bx.

xor ax, ax.

xor bx, bx.

@@q: {Выполняем сложение}.

inc dx.

mul dx.

loop @@q.

in al, 40h.

mov bl, al.

in al, 40h {Конечное количество тиков}.

mov bh, al.

mov t2, bx.

end;

Time1:=t1/(65 536*18.2);

time2:=t2/(65 536*18.2);

writeln ('Время выполнения умножения на Assembler: ',(time2-time1):6:12);

end;

Begin.

clrscr;

{Определяем вид операции}.

textcolor (11);

Writeln ('Сделайте выбор операции и нажмите клавишу ENTER:');

Writeln ('1) Сложение');

Writeln ('2) Умножение');

Readln (vid);

textcolor (10);

Case vid of.

1: begin.

write ('Введите сумму ряда, не более 2-х байт (65 535:)');

Readln (NN);

Writeln;

textcolor (3);

Add_Pascal (NN);

Add_Asm (NN);

end;

2: begin.

write ('Введите произведение ряда, не более 2-х байт (65 535:)');

Readln (NN);

Writeln;

textcolor (3);

Mul_Pascal (NN);

Mul_Asm (NN);

end;

end;

readln;

End.

Показать весь текст
Заполнить форму текущей работой