Red de conocimiento informático - Conocimiento sistemático - Instrucciones IN e instrucciones OUT en lenguaje ensamblador

Instrucciones IN e instrucciones OUT en lenguaje ensamblador

Los puertos se utilizan para el intercambio de datos entre el host y los dispositivos periféricos. (Los circuitos de interfaz de periféricos tienen registros dedicados a la interacción de datos. Para distinguirlos de los registros de la CPU, se denominan "puertos"). Hay tres tipos de puertos: puerto de datos, puerto de estado y puerto de control.

La PC asigna una dirección (llamada número de puerto) a cada puerto, formando un espacio de direcciones de E/S independiente del espacio de memoria. En 8086/8088, el rango de direcciones del puerto es de 0000 a FFFF.

Las operaciones de la CPU en los periféricos se completan mediante instrucciones especializadas de lectura y escritura de puertos. Utilice la instrucción IN para leer el puerto y utilice la instrucción OUT para escribir el puerto.

——————————————————————————————————————————

IN ACC, PORT; leer datos del puerto PORT a ACC;

PORT puede ser un número inmediato o DX.

Cuando ACC es AL, lee datos de 1 byte de PORT a AL

Cuando ACC es AX, lee datos de 2 bytes de PORT a AX

— —————————

PUERTO DE SALIDA, ACC; escribe los datos del ACC en el puerto PORT;

——————————

Ejemplo:

IN AL, 21H; significa leer un byte de datos del puerto 21H a AL

IN AX, 21H significa leer desde la dirección del puerto 21H Obtener 1 byte; de datos a AL, lea 1 byte desde la dirección del puerto 22H a AH

MOV DX, 379H

IN AL, DX lea 1 byte desde el puerto 379H a AL

——————

OUT 21H, AL; escribe el valor de AL en el puerto 21H

OUT 21H, AX escribe el valor de AX Escribe dos bytes consecutivos; a partir de la dirección del puerto 21H. (puerto[21H]=AL, puerto[22h]=AH)

MOV DX, 378H

OUT DX, AX; escriba AH y AL en los puertos 379H y 378H respectivamente

p>