SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: jaumegs en Miércoles 23 de Noviembre de 2005, 16:24

Título: Acceso A Los Puertos
Publicado por: jaumegs en Miércoles 23 de Noviembre de 2005, 16:24
Hola,
Como podría acceder a los puertos seri y paralelo?

SALUDOS
Título: Re: Acceso A Los Puertos
Publicado por: Eternal Idol en Miércoles 23 de Noviembre de 2005, 19:10
Cita de: "jaumegs"
Hola,
Como podría acceder a los puertos seri y paralelo?

SALUDOS
¿Para que Sistema Operativo?  :whistling:
Título: Re: Acceso A Los Puertos
Publicado por: jaumegs en Miércoles 23 de Noviembre de 2005, 20:33
Ui! jeje, un despiste importante. Para windows y un procesador Intel[...]

Pero un pequeñito fabor más, así que la pregunta se transformaría en dos. La primera quedará:

¿Cómo acceder a los puertos serial y paralelo de la PC desde Windows?

y la segunda:

¿Cómo acceder a los puertos serial y paralelo de la PC pero sin usar ningún OS en concreto? Es decir, como si creara un disco de arranque, y desde el quisiera usar los puertos (*nota: NO pido el código del disco de arranque  :P)

SALUDOS :smartass:
Título: Re: Acceso A Los Puertos
Publicado por: Eternal Idol en Miércoles 23 de Noviembre de 2005, 21:21
Vamos por partes.

En un Sistema Operativo de 32 bits como Windows no podes acceder al hardware directamente desde modo usuario. Tenes que usar la API de Windows para abrir el puerto que quieras (CreateFile), leer y escribir (Read/WriteFile) y ademas tenes que configurar el puerto correctamente.

Mas informacion:
http://msdn.microsoft.com/library/en-us/de...s_resources.asp (http://msdn.microsoft.com/library/en-us/devio/base/communications_resources.asp)
http://www.ontrak.net/mfc.htm (http://www.ontrak.net/mfc.htm)

Si no queres usar ningun S.O. dependes de las interrupciones que provee la BIOS o de usar las instrucciones in y out del microprocesador.  

:devil:  :devil:
Título: Re: Acceso A Los Puertos
Publicado por: jaumegs en Miércoles 23 de Noviembre de 2005, 23:15
Interesante, y a su vez decepcionante. Pero seamos optimistas :D .

Bueno, seguramente ahora hablaré demasiado... No se demasiado sobre los procesadores, pero por lo que he leido al respecto, hay dos buses de datos diferentes, uno para la memoria, y otro para los perifericos.
Eso es basicamente lo que "se" yo sobre este tema, y digo ahora yo... si esto es así, como acceder a tales direcciones? Y supuestamente, los puertos tienen una, no es asi?

Bueno... jejej Soy insistente, y hasta que no lo consiga...  :comp:

SALUDOS
Título: Re: Acceso A Los Puertos
Publicado por: jaumegs en Miércoles 23 de Noviembre de 2005, 23:26
Bueno... mirando por alli vi esto:

Código: Text
  1.  
  2.  
  3. dosseg
  4. .model small
  5. .stack 100h
  6.  
  7. .code
  8. main proc
  9.   mov al,48&#59; 8-bit output value stored in al
  10.   mov dx,378h&#59; parallel port is 378 hex
  11.   out dx,al&#59; write it
  12.  
  13.   mov ax,4C00h&#59; return to DOS
  14.   int 21h
  15. main endp
  16. end main
  17.  
Título: Re: Acceso A Los Puertos
Publicado por: Eternal Idol en Jueves 24 de Noviembre de 2005, 00:01
¿Y un codigo que dice return to dos te parece que es para Windows?

Ese codigo utiliza la instruccion out que te habia mencionado anteriormente.
Título: Re: Acceso A Los Puertos
Publicado por: jaumegs en Jueves 24 de Noviembre de 2005, 15:42
Tranquilo, a esto de lo de "return to DOS" llego, solo era para aportar algo a mi pregunta... :unsure:

Bueno, si alguien se anima... ;)
Título: Re: Acceso A Los Puertos
Publicado por: Eternal Idol en Jueves 24 de Noviembre de 2005, 17:24
Cita de: "jaumegs"
Tranquilo, a esto de lo de "return to DOS" llego, solo era para aportar algo a mi pregunta... :unsure:

Bueno, si alguien se anima... ;)
Muchisimo mejor; entonces tenes material de sobra en los enlaces que te deje anteriormente.

 :devil: