Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Вниз

Как научить программу на АСМ работать под виндами?   Найти похожие ветки 

 
mobilzero   (2003-04-21 11:02) [0]

Имеется программка на АСМе:

;эта программа разработанна для подсчета числа импульсов поступивших
;с порта принтера (прерывание 0fh)
;число импульсов сохраняется по адресу 017h*4 размер-слово



.286
code segment para
assume ds:code,es:code,cs:code
org 100h



begin:
jmp inic

Proga proc near
sti

push ax bx cx dx
push sp bp si di
push ds ss es

push cs
pop ds

jmp skok
kol dw ?


skok:

inc [kol] ;увеличение счетчика прерываний

;--задержка--------
;--она сделана для того чтобы усмерить пыл 350 Mgz-го компутера
; mov cx,00ff0h
; cyc1: push cx
; mov cx,0fffh
; c2: loop c2
; pop cx
; loop cyc1

;--------увеличение преременной в памяти --------
mov ax,0h
mov es,ax
mov si,017h*4

mov ax,[kol]
mov es:[si],ax


;-------------------

;-------посылаем в регистр ПКП сигнал конца прерывания---
mov al,20h
out 20h,al
cli

pop es ss ds
pop di si bp sp
pop dx cx bx ax

iret

proga endp

;----------------------------------------------------------------------------
;-------------процедура установки резидента----------------------------------
;----------------------------------------------------------------------------
inic proc near
cli
push ds
;---------обнуление вектора номер 017h-------------
mov ax,0h
mov es,ax
mov si,017h*4

mov word ptr ds:[si],0h


;---------внесение 0 в переменную kol (инициализация)-----
mov ax,0
mov [kol],ax

;-----разрешение прерываний принтера------
mov ax,40h
mov es,ax
mov dx,es:[8]

inc dx
inc dx
in al,dx
or al,00010000b
out dx,al

;------программирование ПКП----------
mov dx,21h
in al,dx
and al,01111111b
out dx,al
;----------------

mov si,0fh*4
mov ax,0
mov ds,ax


;----------ustanovka vektora---------------------------------
mov ax, offset proga
mov ds:[si],ax
mov ds:[si+2],cs

pop ds
sti

mov dx, offset inic
int 27h

inic ENDP
Code ENDS
END BEGIN



Задача - сделать так, чтобы она работала под Виндами, Желательно с помощью Delphi.

Извините за ламерство :(... Но асма я не знаю :)

Заранее благодарю!


 
Мисс Киса   (2003-04-21 11:26) [1]

Придётся драйвер писать


 
Digitman   (2003-04-21 11:48) [2]


> Задача - сделать так, чтобы она работала под Виндами


А каков смысл ?


 
Ihor Osov'yak   (2003-04-21 12:50) [3]

Эту программу никак. И дело тут не в asm. А дело в несколько иной идеологии работы win чем dos. Говоря несколько вольно и не совсем точно - запрет на прямую работу с аппаратурой и прерываниями. Выход - см. Мисс Киса (21.04.03 11:26), но предварительно подумав над Digitman © (21.04.03 11:48)


 
mobilzero   (2003-04-22 17:46) [4]

Смысл - это часть программного продукта, используемого медиками.... для подсчета импульсов. Ну а теперь компы новые, а под виндой не хочет работать :(... Вот и думаем - либо свою прочедуру создавать (как еще не знаем... :( ) Либо эту подпрограмму заставить под виндами пахать :)


 
Digitman   (2003-04-23 11:17) [5]


> для подсчета импульсов


Не понял - подсчет импульсов в заданную единицу времени что ли ? Или просто - общее число импульсов, начиная с момента старта программы ?
И - каких импульсов ? Стробирующих ввод ? Или - стробирующих вывод ? Возникновение прерывание от порта ведь прямо связано со служебными строб-сигналами на внешней интерфейсной шине порта !



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
14-7677
nick-from
2003-06-16 09:37
2003.07.03
Народ нужен хостинг, бесплатный естественно, с поддержкой


8-7564
Сивка
2003-03-18 18:00
2003.07.03
Последовательность звуковых файлов


4-7759
oduvan
2003-05-02 12:41
2003.07.03
Как нажать на кнопку в другом окне


3-7358
Alexsus
2003-06-10 13:54
2003.07.03
Подскажите пожалуйста, как настроить DBGrid так


14-7669
neuro
2003-06-11 20:54
2003.07.03
codegeneration





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский