Данный режим характеризуется тем, что все действия по вводу/выводу реализуются командами прикладной программы. При необходимости в соответствующем месте программы используются команды IN или OUT. Общее состояние устройства характеризуется флагом готовности READY,
называемым также флагом готовности/занятости (READY/BUSY). Процессор проверяет флаг готовности с помощью одной или нескольких команд. Данный цикл называется циклом ожидания готовности и реализуется в различных процессорах по-разному. Недостатки программного ввода-вывода является потеря времени в режиме ожидания(подготовки), плюсы простота в использовании.
В процессе взаимодействия любых двух устройств ЭВМ одно из них обязательно выполняет активную, управляющую роль и является задатчиком, второе оказывается управляемым, исполнителем. Чаще всего задатчиком является процессор.
Другим важным принципом, заложенным в структуру интерфейса, является принцип квитирования (запроса - ответа): каждый управляющий сигнал, посланный задатчиком, подтверждается сигналом исполнителя.