Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум по ассемблеру.pdf
Скачиваний:
74
Добавлен:
12.03.2016
Размер:
1 Мб
Скачать
☆

КАК И ГДЕ ПРОГРАММА ХРАНИТ КОД И ДАННЫЕ

Виды памяти

Вообще видов памяти можно придумать множество, но тех, которыми ЦПУ может распоряжаться непосредственно, всего три:

1)Оперативная память (ОЗУ). Находится вне ЦПУ, т.е. на отдельной плате. Обладает большим объёмом (единицы

– десятки гигабайт), но относительно невысоким быстродействием. Как правило, имеет структуру линейного массива, номера ячеек, в котором, называются адресами. К ОЗУ можно обращаться непосредственно процессорными инструкциями, указывая адрес ячейки в памяти.

2)КЭШ память. Как правило, расположена на том же кристалле, что и ЦПУ. Имеет, приблизительно, в 1000 - 10000 раз меньший объём, но в 10 - 20 раз большее быстродействие. В каждый момент времени хранит копии тех участки ОЗУ, с которыми ЦПУ, в настоящий момент работает. Управляется автоматически, контроллером памяти ЦПУ. При помощи процессорных инструкций управлять непосредственно КЭШ памятью нельзя.

3)Регистры. Не только расположены на том же кристалле, но и являются частью архитектуры процессора. Обладают самым большим быстродействием. Считать или записать значение в регистр процессор может за один такт. Но регистров относительно мало, суммарный объём регистровой памяти в современных процессорах не превышает нескольких килобайт (включая векторные и служебные регистры). Регистры могут программироваться явно, соответствующими процессорными инструкциями. Так же для выполнения большинства операций процессору нужно, что бы хотя бы один из операндов был предварительно загружен в регистры.

Далее мы будем рассматривать только два из трёх указанных выше видов памяти: ОЗУ и регистры.

ОЗУ

Способы адресации

Несмотря на то, что ОЗУ представляет собой линейный массив, существует несколько способов её адресации. В основном, их наличие связано с необходимостью выделять определённые участки общей памяти для конкретных целей: машинного кода, данных, стека и т.д.

…

Сегменты

При сегментной адресации вся память разбита на сегменты размером по 64 килобайта. Сегменты расположены не ровно друг за другом, а могут накладываться. То есть существуют ячейки памяти, принадлежащие сразу нескольким сегментам.

…

Страницы

Способ организации памяти, при котором единицей отображения виртуальных адресов на физические является регион постоянного размера (т. н. страница). Типичный размер страницы - 4096 байт, для некоторых архитектур - до

128 КБ.

…

Регистры

Регистры общего назначения (РОН)

Регистры данных

Для хранения промежуточных результатов вычислений в процессорах x86 программисту доступно лишь 4 регистра: AX, BX, CX, DX. Все регистры имеют размер по 2 байта. Так же каждый регистр имеет псевдонимы для обращения только к младшему или только к старшему байту:

x8

AL, AH

BL, BH

CL, CH

DL, DH