С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 8

Измерение длительности операции

16.02.2011, 22:47. Показов 2871. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Есть программка для измерения длительности цикла с определенным количеством команд. Работает с помощью системного таймера.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.model small
.stack 100h
.data
x dw 156
y dw 139
oldcount dw 0
.code
begin:
mov ax,@data
mov ds,ax
;-------------
mov ah,0
int 1ah ; получаем значение счетчика
mov oldcount,dx ; сохраняем начальное значение
;-------------
; измеряем длительность этого цикла
mov ax,x
mov bx,y
xor cx,cx
for1:
inc cx
add ax,bx
cmp cx,10000
jl for1
;-------------
mov ah,0
int 1ah ; получаем значение счетчика
mov bx,oldcount ; считываем старое значение
sub dx,bx ; берем разность
Результат получаем в регистре BX, но он в тактах. Подскажите, как перевести результат в микросекунды и вывести значение на екран? Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2011, 22:47
Ответы с готовыми решениями:

ATMega328P. Измерение длительности импульсов
Добрый день, уважаемые форумчане! То ли ввиду моей неопытности в написании программ для МК, то ли ввиду каких-то иных факторов никак...

Измерение длительности работы программы
Здравствуйте. Возник вопрос. У меня задача на сортировку массивов, требуется "получить оценку среднего времени выполнения и числа...

Измерение длительности сигнала с помощью stm32f429zi
Всем привет. Может stm32f429 аппаратно мерить длительность импульса ? Если может то как правильно настроить таймер?

4
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,758
17.02.2011, 04:19
swatkiev,
Функция 0 прерывания 1Ah возвращает количество тиков равных 1/18 секунды, так что ни о каких измерениях в микросекундах и речи быть не может, тем более в режиме эмуляции ДОС запущенном под Windows, а как вывести на экран прочитай в Ввод и вывод чисел в различных системах счисления
0
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 8
17.02.2011, 20:42  [ТС]
Mikl___, ну на счет вывода чисел я понял (кстати те программы для чисел с плавающей точкой подходят, а то там вроде не указано?)
А в чем же мы получим результат измерений? Какие данные нам выведутся на экран? Просто учитель хочет, чтобы было в микро- или мили- или просто секундах. Я читал Джордейна, но что то я там не нашел, как он из тактов в секунды переводит данные
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,758
18.02.2011, 05:19
swatkiev,
у Джордейна есть глава о программировании таймера, там о том, как сделать число тиков не 18 раз в секунду а чаще.
Для более точных измерений времени можно запрограммировать таймер на изменение интервала изменения счетчика времени суток на величину, большую чем 18,2 раза в секунду. Чтобы например сделать частоту обновления счетчика 1000 раз в секунду значение задвижки должно быть 1193 (1193180 тактов в секунду / 10000). Перед дисковыми операциями оригинальное значение задвижки должно быть восстановлено, поскольку канал 0 используется для синхронизации дисковых операций. Максимально возможное значение 65535 тактов часов между импульсами от канала может быть достигнуто засылкой 0 в регистр задвижки (0 превращается в 65535 при уменьшении на единицу)
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
;установка регистров ввода/вывода
MOV AL,001101110b   ;установка битов для канала 2
OUT 43h,AL      ;засылка в командный регистр
;посылка счетчика в задвижку
MOV AX,1193     ;счетчик для 100 импульсов/с
OUT 42h,AL  ;посылка младшего байта в канал 2
XCHG AH,AL  ;готовим для посылки старший байт
OUT 42h,AL  ;посылка старшего байта в канал 2
…         ;запускаем процедуру 
;восстанавливаем значение счетчика
MOV AL,001101110b   ;установка битов для канала 2
OUT 43h,AL      ;засылка в командный регистр
;посылка счетчика в задвижку
MOV AX,1193     ;счетчик для 100 импульсов/с
OUT 42h,AL  ;посылка младшего байта в канал 2
XCHG AH,AL  ;готовим для посылки старший байт
OUT 42h,AL  ;посылка старшего байта в канал 2
0
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 8
18.02.2011, 21:32  [ТС]
Mikl___, так это выходит, что сначала нужно написать твою программу, чтобы изменить частоту обновления счетчика, а потом уже то, что я выложил в первом посте? И еще - если мы так сделаем - то в каких единицах получим в итоге результат - в милисекундах? Как его правильно скомпоновать, чтобы правильно программа начала работать? И кстати ты так и не ответил - какую из программ вывода результата на экран лучше всего в нашем случае использовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2011, 21:32
Помогаю со студенческими работами здесь

Измерение длительности входного сигнала на ATmega8
Здравствуйте!Существует следующее задание для ОМК ATmega 8: Если длительность сигнала положительной полярности на входе таймера Т1 больше...

Помогите настроить таймер на измерение длительности импульса
"тема по" HC-SR04 Ultrasonic Sensor Dystance Measuring Module. Хочу сделать на его основе бесконтактный датчик уровня воды в ёмкости....

Формулы длительности
Добрый день! Считаю общую длительность занятий по формуле: Sum(Hour(!))+Sum(Minute(!))\60 & ":" & Sum(Minute(!)) Mod...

Конвертация длительности из Numbers
Всем привет. Имеется таблица в Numbers, которую нужно преобразовать в Excel. Таблица используется для подсчёта длительностей в...

Ограничитель длительности импульса
Может у кого имеются наработки ограничения длительности импульса с выхода МК на силовые ключи? Нужно простое надёжное решение. Питание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru