Форум: "Система";
Текущий архив: 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