35. организация памяти 16 разрядного МП. Адресация портов ввода - вывода
Адресация портов ввода-вывода 16ти разрядного МП
Пространство адресов портов ввода-вывода не сегментировано, занимает 64кБ и адресация 16 младшими разрядами 20ти разрядной шины: адреса А19-А0, А15-А0.
Порты могут быть как 8 так и 16 разрядные, любые 2 смежных 8ми разрядных порта можно рассматривать как 1н 16ти разрядный, при этом для обмена с 8-ми разрядными портами используется регистр AL с 16ти разрядными AX
При выводе информации из 8ми разрядного порта с адресом 56H в регистр AL:
Чтобы передать информацию из 8ми разрядного порта с определенным адресом в аккумулятор AL можно выполнить ввод-вывод:
- 1й операнд команд 8ми разрядный аккумулятор;
- 2й операнд номер порта (56), получаем: IN AL,56H; AL<-P8(58H)
2. вывести информацию из регистра аккумулятора AX в 16ти разрядный порт с адресом с адресом 34H.
Чтобы вывести информацию из AX в 16ти разрядный порт надо выполнить команду вывода OUT.
Первый операнд команды номер порта 34H, аккумулятор AL если выводится байт инфы или AX если выводится слово, получаем: OUT 34H,AX; AX->P`16(34H)
3. Вывести информацию из 8ми разрядного порта с адресом, который содержится в регистре DX в регистр аккумулятор AL. Чтобы ввести информацию надо выполнить команду IN.
первый операнд – аккумулятор AL, второй регистр DX.
IN AL,DX; AL<-P`8(DX)
Содержимое регистра DX должно быть определено к моменту выполнения команды ввода.
Организация памяти 16-разрядного МП
Память – массив емкостью 1 Мбайт = 2^20, 8-разрядных ячеек. В памяти хранятся байты и 16-разрядные слова. Слова располагаются в следующих ячейках памяти: старший байт – в ячейке со старшим адресом. Адрес слова – адрес младшего байта.
Организация памяти, при которой каждому адресу соответствует содержимое одной ячейки памяти, называется линейной.
В МП i8086 используется сегментная организация памяти, характеризующаяся тем, что программно доступной является не вся память, а лишь некоторые ее сегменты, внутри которой используется линейная адресация.
Введение сегментной организации можно объяснить следующим образом. МП i8086 имеет 16-разрядный регистр и сумматор, 16-разрядную внутреннюю шину. Стремление разработчиков адресовать большой массив памяти обусловлено 20ти разрядной ША.