SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: jsoldi en Viernes 3 de Octubre de 2003, 02:47
-
Hola a todos. ¿Alguien sabe cómo leer y escribir directamente en puertos paralelos en Windows sin que me salga una excepción? ¿Es posible hacer esto o necesito instalar algún controlador? Y si es posible, ¿se supone que cada bit de la memoria donde voy a escribir y leer es un pin del puerto o es más complicado? Lo que sucede es que quiero conectarlo a un dispositivo que todavía no existe, y que un amigo que estudia electrónica va a hacer, pero ni el ni yo sabemos bien como es el asunto de la comunicación entre la PC y el dispositivo. Espero que alguien me pueda ayudar con esto. Gracias.
-
:hola: Soy nuevo en el foro y veo que esta algo viejita esta pregunta me refiero a cuando la hiciste. Espero que aún necesites esta información hay te va un ejemplo. ;)
; pto.asm: Conector Centronics leds en pin-2/pin-19 y pin-9/pin-30.
; Operación: Enciende pin-9, enter, enciende pin-2, enter, flasher.
BITS 16
ORG 0x0100
SECTION .text
Main
mov dx, 378h ; direccion de DATA-PORT
mov al, 80h ; led-d7=on (pin-9)
out dx, al
call Getch
mov al, 1 ; led-d0=on (pin-2)
out dx, al
call Getch
call Flash
xor al, al ; apagar leds
out dx, al
int 20h
Flash ; Prende/Apaga "cx" veces ambos leds
mov cx, 14h ; repeticiones
mov al, 80h ; experimentar con "81h"
Fciclo:
out dx, al
xor al, 81h
push cx
call Delay
pop cx
loop Fciclo
ret
Getch ; Espera tecla ENTER
push dx ; save port-addr
mov dx, Msj
mov ah, 9
int 21h
mov ah, 10h
int 16h
pop dx ; restore port-addr
ret
Delay ; Retardo
mov cx, 10ffh
D10:
push cx
D20:
loop D20
pop cx
loop D10
ret
SECTION .data
Msj db 'Pulse enter para continuar',10,13,'$'
:whistling: Espero sirva