ВУЗ:
Составители:
16
искомого байта относительно этого начала. Программа обращается к сегментам,
используя вместо физического (20-разрядного) адреса начала сегмента 16-
разрядное число, называемое также «селектор сегмента». В процессорах Intel 8086
предусмотрено четыре шестнадцатибитных регистра — CS, DS, ES, SS,
используемых для хранения селекторов. Это не значит, что программа не может
одновременно работать с большим количеством сегментов памяти, — в любой
момент времени можно
изменить значения, записанные в этих регистрах (В нашей
модели это не реализовано, то есть из сегментных регистров значения можно
только считывать, изначально все четыре регистра указывают на разные
сегменты).
Регистр DS (Data Segment) указывает на основной сегмент данных. Именно
в этом сегменте, как правило, хранится основная масса тех данных, которые
обрабатывает программа (числа,
символы, строки, массивы, логические
величины).
Регистр ES (Extra Segment) указывает на дополнительный сегмент данных.
Его можно рассматривать как расширение (продолжение) основного, кроме того,
этот сегмент в обязательном порядке используется командами обработки строк,
такими, как MOVS, CMPS, SCAS.
Регистры CS и SS отвечают за сегменты двух особенных типов — сегмент
кода и сегмент стека. Сегмент кода содержит программу, исполняющуюся в
данный
момент, так что запись нового селектора в этот регистр приводит к тому,
что далее будет исполнена не следующая по тексту программы команда, а команда
из кода, находящегося в другом сегменте, но с тем же смещением. Смещение
следующей выполняемой команды всегда хранится в специальном регистре —
IP (указатель команд, тридцатидвухбитная форма обозначается как EIP), запись в
который также приведет к тому, что следующей будет исполнена какая-нибудь
другая команда. На самом деле все команды передачи управления — перехода,
условного перехода, цикла и т.п. — и осуществляют эту самую запись адресов
в CS и IP.
Рассмотрим более подробно процедуру формирования физического адреса.
Как отмечалось выше, разрядность шины адреса
равна 20, однако для упрощения
операций хранения и пересылки адресной информации процессор манипулирует
16 искомого байта относительно этого начала. Программа обращается к сегментам, используя вместо физического (20-разрядного) адреса начала сегмента 16- разрядное число, называемое также «селектор сегмента». В процессорах Intel 8086 предусмотрено четыре шестнадцатибитных регистра — CS, DS, ES, SS, используемых для хранения селекторов. Это не значит, что программа не может одновременно работать с большим количеством сегментов памяти, — в любой момент времени можно изменить значения, записанные в этих регистрах (В нашей модели это не реализовано, то есть из сегментных регистров значения можно только считывать, изначально все четыре регистра указывают на разные сегменты). Регистр DS (Data Segment) указывает на основной сегмент данных. Именно в этом сегменте, как правило, хранится основная масса тех данных, которые обрабатывает программа (числа, символы, строки, массивы, логические величины). Регистр ES (Extra Segment) указывает на дополнительный сегмент данных. Его можно рассматривать как расширение (продолжение) основного, кроме того, этот сегмент в обязательном порядке используется командами обработки строк, такими, как MOVS, CMPS, SCAS. Регистры CS и SS отвечают за сегменты двух особенных типов — сегмент кода и сегмент стека. Сегмент кода содержит программу, исполняющуюся в данный момент, так что запись нового селектора в этот регистр приводит к тому, что далее будет исполнена не следующая по тексту программы команда, а команда из кода, находящегося в другом сегменте, но с тем же смещением. Смещение следующей выполняемой команды всегда хранится в специальном регистре — IP (указатель команд, тридцатидвухбитная форма обозначается как EIP), запись в который также приведет к тому, что следующей будет исполнена какая-нибудь другая команда. На самом деле все команды передачи управления — перехода, условного перехода, цикла и т.п. — и осуществляют эту самую запись адресов в CS и IP. Рассмотрим более подробно процедуру формирования физического адреса. Как отмечалось выше, разрядность шины адреса равна 20, однако для упрощения операций хранения и пересылки адресной информации процессор манипулирует
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »