Тест на быстродействие микропроцессора
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: контрольные работы 9 класс, банк курсовых работ бесплатно
| Добавил(а) на сайт: Мананников.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата
Рассмотрим недостаток № 3. Затрачивание времени на обмен данными.
§5. Описание алгоритма
Блок 1-7. Подсчёт времени на выполнение выбранной операции на языке
высокого уровня. В данном случае применяется язык Pascal.
Блок 1. Начало программы.
Блок 2. Вводятся два числа с клавиатуры.
Блок 3. Выбираем операцию из предложенных на экране. Если это операция
сложения, то выполняется алгоритм суммирования ряда, если умножение, то
выполняется вычисление факториала.
Ввели N, то рад сложения выглядит следующим образом:
1+2+3+…+N=СУММА
Умножения
1*2*3*…*N=ПРОИЗВЕДЕНИЕ
Блок 4. Включаем таймер и запоминаем начальное значение.
Блок 5. Выполняем выбранную операцию на Pascal.
Блок 6. Выключаем таймер и запоминаем считанное значение
Блок 7. Находим разницу между начальным значением времени и конечным
Блок 8-14. Подсчёт времени на выполнение выбранной операции на языке низкого уровня. Применяется язык Assembler.
Блок 8. Переменные, которые мы вводим с клавиатуры, находятся в памяти.
Чтобы начать вычисления мы должны из памяти (ОЗУ) поместить значения в
регистры процессора. Это мы делаем до включения таймера, чтобы время, затраченное на это действие, не вошло в результат.
Блок 9. Считываем начальное значение времени.
Блок 10. Выполняем операцию
Блок 11. Считываем конечное время
Блок 12. Находим время выполнения операции – это разница между конечным
значением и начальным.
Блок 13. Выводим значение времен на экран и делаем выводы.
Блок 14. Выход из программы.
§6. Листинг программы
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/(65536*18.2);
time2:=t2/(65536*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/(65536*18.2);
time2:=t2/(65536*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/(65536*18.2);
time2:=t2/(65536*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
Рекомендуем скачать другие рефераты по теме: сочинение 6 класс, шпаргалки по истории россии.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата