Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2010, 10:08   #1
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию Определить время выполнения программы при известной тактовой частоте

Подскажите, пожалуйста, формулу, чтобы определить время выполнения программы указанной при тактовой частоте микропроцессора fт=2МГц. В мнемокоде засвечены: ADD E; MOV E, A; MOV A, D; ADI; 01; MOV D, A.
new player вне форума Ответить с цитированием
Старый 01.09.2010, 11:58   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

если это 51, или 80 то в описаниях процессора есть такты на команды, какой процессор используется у Вас?
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 01.09.2010, 12:02   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

new player
Должен быть справочник по количеству тактов на операцию, в данном случае на intel 8080, посмотри на сайте Intel'a
Mikl___ вне форума Ответить с цитированием
Старый 04.09.2010, 18:59   #4
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

Для каждого контроллера сушествует свое время выполнения команд у одних контроллеров 90% команд занимает один такт кварца у более старых до 10 и даже более. Нужно знать какой проц ты используеш. У более продвинутых моделей есть внутренние устройство АЦП, ЦАП, а так же некоторые интерфейсы они так же завязаны с тактовой частотой кварца или генератора который ты используеш.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок
Assemblerru вне форума Ответить с цитированием
Старый 04.09.2010, 20:03   #5
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

http://www.emuverse.ru/wiki/Intel_80...B0%D0%BD%D0%B4
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 06.09.2010, 14:26   #6
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Всем спасибо, разобрался. На всякий пожарный, вдруг кому-нибудь понадобится:

Чистое процессорное время одной программы считается по формуле:
T = (N * S) / R
где N-кол-во маш. комманд в программе, S - среднее кол-во выполняющихся маш. команд за 1 такт, R - тактовая частота.

Или просуммировать все такты и разделить на частоту (1 Гц - 1 такт в секунду).
new player вне форума Ответить с цитированием
Старый 07.09.2010, 04:34   #7
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

new player
К сожалению не учитывается наличие конвейера и то, что например у Penium имеется два ALU, которые выбирают команды и работают одновременно друг с другом
Mikl___ вне форума Ответить с цитированием
Старый 07.09.2010, 08:48   #8
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

2 Mikl___:
Команды ADD E; MOV E, A; MOV A, D; ADI; 01; MOV D, A относятся к процессору i8080 (КР580ВМ80).
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 07.09.2010, 09:05   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

alexcoder, +1

Mikl___, а разве у Intel8080 был конвеер?!!
Имхо, прямое пследовательное выполнение команд! А сопроцессор — это вообще отдельная микросхема была... (причём её могло и не быть )

new player, Ваша формула даёт среднее значение (т.е. величину, приблизительно равную весу сферического коня в вакууме... )
Код:
  MVI C, 100
CYCLE:
  DCR C
  JNZ CYCLE
сколько машинных команд? А сколько тактов это будет выполняться?!!
Впрочем, думаю, что для учебных целей Вашей формулы вполне достаточно. Просто сделайте себе в памяти зарубку, что в реальной жизни, всё чуток сложнее и время выполнения программы бывает трудо оценить по количеству машинных команд..

p.s. вспомнился анекдот времён моей студенческой молодости...
"Японские микропроцессоры выполняют 300 тыс. операций в секунду,
а советские — одну! Но зато ОЧЕНЬ БЫСТРО!!!"

Последний раз редактировалось Serge_Bliznykov; 07.09.2010 в 09:19.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.09.2010, 10:58   #10
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Serge_Bliznykov
Напрасно, вы меня высмееваете. Пожелание new player "на всякий пожарный, вдруг кому-нибудь понадобится Чистое процессорное время одной программы считается по формуле:" при этом не указывается, что это формула именно для i8080 (КР580ВМ80). В соседнем топике new player пишет, "Извиняюсь, что не указал мп, но в принципе его «как бы» и нет: «8-разрядный микропроцессор с регистрами приведен в качестве типичного примера микропроцессора и не является какой-либо конкретной моделью, выпускаемой промышленностью». В реальности, в большинстве случаев придется сталкиваться с Pentium 4 с его гиперконвейером, который состоит из 20 ступеней, с системой предсказания переходов и т.д.

Последний раз редактировалось Mikl___; 07.09.2010 в 11:01.
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить результат выполнения программы. Joker<777> Паскаль, Turbo Pascal, PascalABC.NET 2 23.04.2010 02:15
Как определить время выполнения конкретный функции? Alex Cones Общие вопросы Delphi 8 24.09.2009 11:42
Время выполнения программы Zhamie Общие вопросы Delphi 8 15.09.2009 15:26
определить время выполнения процедуры? Bezdar Microsoft Office Excel 4 20.01.2009 13:57
Как замерить время выполнения программы Gracel Общие вопросы Delphi 5 12.06.2007 22:16