SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: danyelk_6u5 en Domingo 17 de Octubre de 2010, 00:33

Título: Envio de datos por el puerto serial
Publicado por: danyelk_6u5 en Domingo 17 de Octubre de 2010, 00:33
Hola a todos, necesito de sus ayudas, estoy creando un programa en asm, pero no se porque no esta funcionando, a ver si alguien por aqui sabe responderme.
Se trata de emitir, un caracter por el puerto serial, soy novato en ensamblador, pero e estado buscando por internet, y creo tener el codigo de manera correcta, pero simplemente no esta funcionando, les dejo el codigo para que ustedes chequen:
Código: ASM
  1.  
  2.  
  3. pila segment stack "STACK"
  4. pila ends
  5.  
  6. data segment
  7. data ends
  8.  
  9. code segment
  10.         assume cs:code,ds:data,ss:pila
  11.     inicio:
  12.         mov AH,00; INICIALIZO PUERTO
  13.         mov AL, 11100111b ;paramertos de puerto POR DEFAULT
  14.         mov DX,00 ;puerto  com1
  15.        
  16.         MOV AH,01; enviar datos por el puerto
  17.         MOV AL, 52; caracter a ser enviado  
  18.         INT 14h
  19.  
  20.         ; La funcio 4CH de la inte 21HF devuelve el control al sistema operativo
  21.         MOV AH,4CH
  22.         INT 21H
  23.     code ends
  24. end inicio
  25.  
  26.  

Estoy conectando dos computadoras mediante el cable serial (el cable funciona pues lo e checado con hyperterminal)
Una computadora la dejo escuchando mediante el hyperterminal (dejando la configuracion predeterminada)  y la otra computadora es donde ejecuto el programa, pero no aparecen resultados...
¿Que estare haciendo mal?
¿El codigo es correcto? ¿Lo inicializo bien? ¿Emito bien los datos? ¿El cierre del programa es correcto?
¿O acaso mi forma de comprobarlo es erronea (es decir usar el hyperterminal en una)?
¿Necesito configurar algun permiso de windows o algo asi?

Uso tasm para ensamblar, windows 7 para el emisor y windows xp para el receptor..
Espero puedan ayudarme, se los agradezco de antemano
Título: Re: Envio de datos por el puerto serial
Publicado por: posman en Domingo 17 de Octubre de 2010, 17:20
No estas inicializando el puerto. Pasas todos los parametros necesarios pero no estas ejecutando la interrupcion

Código: ASM
  1.  mov AH,00; INICIALIZO PUERTO
  2. mov AL, 11100111b ;paramertos de puerto POR DEFAULT
  3. mov DX,00 ;puerto  com1
  4.           ; aqui te falta llamar la interrupcion 14h
  5.        
  6. MOV AH,01; enviar datos por el puerto
  7. MOV AL, 52; caracter a ser enviado  
  8. INT 14h
  9.  
Título: Re: Envio de datos por el puerto serial
Publicado por: danyelk_6u5 en Domingo 17 de Octubre de 2010, 17:34
ORALE!! jajaj ya funciono! jajaja... una linea, por una linea me la pase enojado todo el dia, muchas gracias posman, ya funciono ;) pero otra dudita, y para cerrar el puerto? que se necesita?
Título: Re: Envio de datos por el puerto serial
Publicado por: posman en Domingo 17 de Octubre de 2010, 19:12
Desconozco si se tenga que cerrar el puerto.
Revisa todas las funciones de la interrupcion 14h para ver si es necesario alguna para cerrar el puerto
http://www.ctyme.com/intr/int-14.htm
Título: Re: Envio de datos por el puerto serial
Publicado por: danyelk_6u5 en Domingo 17 de Octubre de 2010, 19:14
ok, gracias por las respuestas :)
un saludo!