PDA

Ver la Versión Completa : Codigo ASM en XP


Fralva
28-01-2008, 19:08:23
Hola Foro ! Me consulta es la siguiente: Tengo un soft funcionando el Win98 que maneja entre otras cosas, informacion en los puertos paralelos, mi manera de comunicarme es por medio de Codigo de Assembler envevido, Ej.

Function ConsultarBit(Direccion: Word; Bit: Byte): Boolean;
Begin
B := 1;
B := B SHL Bit;
ASM
mov dx,Direccion
In al,dx
mov A, al
End;
ConsultarBit := (B AND A) > 0;
End;

el problema es que ahora tengo que emigrar a WinXP y ni si quiera me compila, tengo idea q es por el manejo de los registros AL, el mensaje de error es : "Operand size mismatcht".

Como puedo mandar inf al LPT sin ASM ? Existe algun componente ?

Muchas gracias y confio en sus Conocimientos y Experiencia !!

Exitos Frank

egostar
28-01-2008, 19:13:26
Hola Foro ! Me consulta es la siguiente: Tengo un soft funcionando el Win98 que maneja entre otras cosas, informacion en los puertos paralelos, mi manera de comunicarme es por medio de Codigo de Assembler envevido, Ej.

Function ConsultarBit(Direccion: Word; Bit: Byte): Boolean;
Begin
B := 1;
B := B SHL Bit;
ASM
mov dx,Direccion
In al,dx
mov A, al
End;
ConsultarBit := (B AND A) > 0;
End;

el problema es que ahora tengo que emigrar a WinXP y ni si quiera me compila, tengo idea q es por el manejo de los registros AL, el mensaje de error es : "Operand size mismatcht".

Como puedo mandar inf al LPT sin ASM ? Existe algun componente ?

Muchas gracias y confio en sus Conocimientos y Experiencia !!

Exitos Frank

Bueno, aqui en el foro hay compañeros que son toda una autoridad hablando de ASM, lo que yo creo es que la incompatibilidad viene de los registros que usas, 16 bits y 32 bits.

Pero como te digo, esperemos a los que saben de esto. ;)

Salud OS

Fralva
28-01-2008, 20:35:26
Ok. Y no tienes idea como saber cambiar de 16bits a 32bits ? o algun link para leer de manejos de puertos, muy amable !

FGarcia
28-01-2008, 20:56:31
XP no te permite ir a tan bajo nivel. Si quieres manejar el puerto paralelo necesitas instalar un driver que te lo permita. Existen varios, y gratuitos, por ejemplo el que puedes encontrar aquí http://www.logix4u.net/inpout32.htm .