La Web del Programador: Comunidad de Programadores
 
    Pregunta:  29814 - PROGRAMACION HIBRIDA ENTRE ENSAMBLADOR Y COM. DE PUERTOS
Autor:  Alejandro Delgadillo Gómez
Hola que tal me podrian proporcionar informacion de programacion hibrida entre C-ensamblador y la comunicacion de puertos, instruciones de C y asm gracias

  Respuesta:  Ne0 Ph03n1x
Para usar el ensamblador en C se usa la palabra reservada asm, puede programarse linea a linea o bien un bloque completo, esto es:

/*codigo en c
....
*/
asm {
/*un bloque en ensamblador*/
mov ax,dx
}
asm jnc aqui /*una sola línea en ensamblador*/
aqui:
/*..... etc */

Para la comunicacion con los puertos se usa el "out" y el "in" en ensamblador: (si dato es byte saca un byte, si es word, saca un word, el primer byte en la direccion "puerto" y el restante en "puerto+1")

out puerto,dato
in puerto,dato

en "c" son los siguientes:

outportb(puerto,valor); /*saca un byte*/
valor=inportb(puerto); /*recibe un byte*/

y

outport(puerto,valor); /*saca una palabra*/
valor=inport(puerto); /*recibe una palabra*/

Ok. Hope this is useful.

Ne0.