Aquí hay dos instrucciones físicas. IRET es una rama / salto y avanza el contador del programa, saca algunos elementos de la pila, etc. para volver a la tarea anterior que se interrumpió. Utiliza IRET en más escenarios que el manejo de interrupciones, incluidas las excepciones de CPU y las interrupciones externas que no necesariamente pasan por el periférico del controlador de interrupciones.
Referencia IRET
Devuelve el control del programa de un controlador de excepciones o interrupciones a un programa o procedimiento que fue interrumpido por una excepción, una interrupción externa o una interrupción generada por software. Estas instrucciones también se utilizan para realizar un retorno de una tarea anidada . (Se crea una tarea anidada cuando se usa una instrucción CALL para iniciar un cambio de tarea o cuando una interrupción o excepción causa un cambio de tarea a un controlador de interrupción o excepción). Consulte la sección titulada "Vinculación de tareas" en el Capítulo 6 de IA- 32 Manual del desarrollador de software de arquitectura Intel, volumen 3.
EOI es un comando dado al PIC (controlador de interrupción) para borrar la interrupción actual y permitir que el PIC (8259A) emita más interrupciones. No hay ningún requisito de que exista un solo PIC o que todas las interrupciones / excepciones / etc del sistema provengan de ese PIC, por lo que debe indicar explícitamente al periférico (ya sea un IC separado como el original 8086 o integrado en un puente sur o en un morir periférico en x86 moderno) para cambiar el estado.
Conceptualmente, puede ser más fácil pensar en el 8259A como un microcontrolador especializado independiente que se adjunta de forma ubicua a su CPU