СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №4/2012

ПРОГРАММИРОВАНИЕ функция – останавливает его работу и возвращает время работы в микросе кундах. В качестве подпрограммы, время ра боты которой требовалось оценить, использовалась подключаемая под программа 1msec.asmв *.com формате (1msec.com) , написанная на ассембле ре. В этой подпрограмме производит ся ввод содержимого порта состояния COM порта (3feh) в аккумулятор ко мандой in 800 раз, для чего в регистр cx (счётчик цикла) заносится число 800 и осуществляется 800 кратный цикл (оператором loop). Для получения подпрограммы 1msec.com использовался трансля тор ассемблера TASM.EXE и линкер TLINK.EXE фирмы Borland. Для транс ляции и получения *.com файла необ ходимо выполнить две командные строки: TASM.EXE 1msec.asm TLINK 1msec.obj /t Программа mtimer.bas запускает таймер, вызывает подпрограмму MSEC (являющуюся подключаемой подпро граммой 1msec.com ), после её завер шения останавливает таймер, вычис ляет время выполнения в микросекун дах и выводит результат на экран. Ни же приведены тексты обеих программ. Программа mtimer.bas sub MSEC inline $inline "1msec.com" end sub ' mtimer call MSEC T%=mtimer cls N%=fix(800/T%*1000) print"" print " N=";N%;" T=";T%;"мкс" print using " 1 цикл= #.## мкс";T%/800 print " Для t=25 мкс, cx="; print using "##";int(25/(T%/800)) Программа 1msec.asm CSEG segment ;Сегмент кода assume cs:CSEG,ds:CSEG,es:CSEG,ss:CSEG org 100h START: push bp ; сохранение ре гистров mov bp,sp push cx ; mov dx,3feh mov cx,800 in al,dx loop $ 1 ; pop cx pop bp CSEG ends end START После запуска программыmtimer.exe (или при использовании опции RUN в самом турбо бейсике) на экран выво дится следующее окно (см. рис. 4). Необ ходимо отметить, что для выполнения программы mtimer.exe в Windows XP в режиме эмуляцииDOS, необходимопе ред её запуском запустить программу portmon.exeипровестиснейнеобходи мыеманипуляции [1], чтобыразрешить прямой ввод/вывод в COM порт. Из рисунка4, вчастности, следует, что команда процессора ввода байта из COM портакомпьютера (in) выполняет ся за время1,25мксичтодляполучения временной задержки в 25 мкс в регистр cx необходимо загрузить число 20. 67 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2012 Реклама © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy