Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
14-7632
Neft
2003-06-15 16:44
2003.07.03
Руководство пользователя


14-7703
blackweber
2003-06-15 21:02
2003.07.03
Вопрос к пользователям домашних локальных сетей.


14-7639
Rasa
2003-06-16 02:16
2003.07.03
Скроллинг файлов на экране вверх вниз


8-7550
[Baradoo]
2003-03-18 22:46
2003.07.03
Создание программы типа Sound Forge... (как?)


6-7580
softmaster
2003-04-28 21:26
2003.07.03
коннект с SMTP-сервером