Порты в IBM PC используются для доступа к микросхемам. Обратиться к ним можно в любой момент из программы на ассемблере. Например, можно используя порт, обратится к микросхеме прерываний или таймеру. Работа с портами - это работа на очень низком уровне и всегда есть опасность, что может что-то измениться. Но зато это дает очень большие возможности для программиста. Для работы с портами есть специальные команда IN и OUT:
in регистр,ном_порта ввод значения из порта ввода-вывода out ном_порта,регистр вывод значения в порт ввода-вывода
Сами порты описаны в документации. Давайте пока сосредоточимся вот на чем. У нас есть возможность обращаться непосредственно к микросхемам. Это делается через порты. Для работы с портами нужно иметь описание этих портов.
Вот пример кода, который получает звук из динамика используя порты:
MODEL SMALL STACK 256 CODESEG Start: mov ax,@data ; установка в ds адpеса mov ds,ax ; сегмента данных in al,61H ; получить текущее значение or al,02H ; установить второй бит out 61H, al ; вывести значение в порт mov cx,9000H ; количество циклов delay: loop delay ; ждать and al,0fdH ; очистить второй бит out 61H, al ; вывести в порт Exit: CALL ExitProgramm INCLUDE function.asm End Start
После запуска этой программы Вы должны услышать короткий звук из динамика.