Программирование на JAVA

¼                                                                                                        ;результат помещается в ax

Вся память компьютера делится на сегменты, и для размещения в памяти компьютера любой программы ей выделяется необходимое количество сегментов памяти. Адреса  начала каждого сегмента (индекс в таблице дескрипторов) хранятся в специальных сегментных регистрах. Программа, фрагмент которой приведен выше, использует два сегмента памяти:

- сегмент кода, в котором расположены выполнимые команды программы;

- сегмент данных, в котором расположены обрабатываемые данные программы.

На рис.4.9. приведено расположение программы в памяти компьютера. Программа расположена в двух сегментах, сегменте кода и сегменте данных. Команды и данные располагаются в своих сегментах непрерывно, начиная с нулевого адреса (смещения).

 

Сегмент кода

Сегмент данных

Адресация внутри сегмента (смещение относительно начала)

Содержимое памяти (коды команд)

Адресация внутри сегмента (смещение относительно начала)

Содержимое памяти (двоичные чисела)

0000

0000

0004

0004

¼

0008

¼

03D8

8B 1E 00 42

03DC

03 C3

0042

FF F6   (-1010)

03DE

Следующая команда

0044

FF FF FF FB   (-510)

¼

0048

¼

Рис 4.9. Расположение программы в памяти персонального компьютера

Команды загружаются в процессор для выполнения в соответствии с адресами, которые формируются регистре PC (Program Counter). Команда mov загружается из памяти в процессор на основании содержимого регистра PC, который формируется при выполнении предыдущей команды


<< назад вперед >>