Leer puerto de serie
![]() Fellix 06 de Mayo del 2010 |
Hola, Estoy intentando leer desde ensamblador (8086) el puerto de serie. De momento sé que la interrupción asociada es 0c. Se me ha ocurrido sustituir la ISR por una mía que lea lo que hay en el puerto de serie. Hay alguna forma más fácil de hacerlo? Esto es lo que tengo: INTER SEGMENT AT 0 ; segmetno en la tabla de vectores para manejar los vectores como si fueran variables. org 4*0C ; con esto marco un offset inicial, asÌ la variable empieza en el offset donde esta la isr del puerto de serie. Sin inicializar para no machacar el valor que hay vector_ip dw (?) ; primero esta el offset, luego la direccion de segmento vector_cs dw (?) INTER ENDS cambia proc cli; mov ax,vector_ip mov guarda_ip,ax mov ax,vector_cs mov guarda_cs,ax ; guardo lo que hay mov vector_ip,offset rutina ; redirecciono a mi rutina mov vector_cs,cs ; sti ret cambia endp rutina proc far ;obtener datos del arduino/serie, de un registro? ; poner datos leídos en una cadena mov dx, offset cadena mov ah,9 ; para visualizar cadenas con la interrupción 21h int 21h ; hay que pasarle en DX la dirección de la cadena (no lo rutina endp Voy bien? Qué pasa cuando se lanza la isr? se guarda en algún registro la info del puerto de serie? supongo que será algo más complejo y habrá que trabajar con la velocidad, paridad, etc, no? |
![]() Fellix 06 de Mayo del 2010 |
he dado con está web http://hgr.tripod.com/puertos_ensamblador.html |
![]() felix 08 de Mayo del 2010 |
parece que he cantado victoria antes de tiempo. Leer datos funciona sin problemas pero escribir nada de nada, siempre me da un 80H, que significa un time out |







