МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Автоинкрементная и автодекрементная адресация.
Основная (оперативная) память РР’Рњ обычно является адресной. Рто значит, что каждой хранимой РІ РћРџ единице информации (байту, слову) ставится РІ соответствие специальное число - адрес, определяющий место ее хранения РІ памяти. Следует различать понятия адресный РєРѕРґ РІ команде Ак Рё исполнительный адрес РђРё. Адресный РєРѕРґ - это информация РѕР± адресе операнда, содержащаяся РІ команде. Р?сполнительный адрес - это номер ячейки памяти, Рє которой производится фактическое обращение. Р’ современных РР’Рњ, адресный РєРѕРґ, как правило, РЅРµ совпадает СЃ исполнительным адресом. Автоинкрементная Рё автодекрементная адресация очень близка Рє косвенной адресации, РЅРѕ отличается РѕС‚ нее тем, что после выполнения команды содержимое используемого регистра увеличивается РЅР° единицу или РЅР° РґРІР°. Регистровая косвенная адресация требует предварительной загрузки регистра РёР· РћРџ косвенным адресом, что связано СЃ потерей времени (РїСЂРё косвенной адресации адресный РєРѕРґ команды указывает адрес ячейки памяти, РІ которой находится адрес операнда или команды, таким образом, косвенная адресация может быть иначе определена как «адресация адреса»). Автоинкрементная Рё автодекрементная адресация особенно эффективна РїСЂРё обработке массива данных, если имеется механизм автоматического приращения или уменьшения содержимого регистра РїСЂРё каждом обращении Рє нему, называемый соответственно автоинкрементной Рё автодекрементной адресацией. Р’ этом случае достаточно РѕРґРёРЅ раз загрузить РІ регистр адрес первого обрабатываемого элемента массива, Р° затем РїСЂРё каждом обращении Рє регистру РІ нем РІ результате инкрементной (декреметной) процедуры формируется адрес следующего элемента массива.
ВРџСЂРё автоинкрементной адресации сначала содержимое регистра используется как адрес операнда, Р° затем получает приращение, равное числу байт РІ элементе массива. РџСЂРё автодекрементнойадресации сначала содержимое указанного РІ команде регистра уменьшается РЅР° число, равное числу байт РІ элементе массива, Р° затем используется как адрес операнда.
ВАвтоинкрементная Рё автодекрементная адресации РјРѕРіСѓС‚ рассматриваться как упрощенный вариант индексации - весьма важного механизма преобразования адресных частей команд Рё организации вычислительных циклов, поэтому РёС… часто называют автоиндексацией.
Постдекрементная ( postdecrement) - автодекрементная адресация, РїСЂРё которой вычитание производится после выборки операнда. ВПредекрементная ( predecrement) - автодекрементная адресация, РїСЂРё которой вычитание производится РґРѕ выборки операнда.
РЈ Intel только 1, нет направления, РІ процессорах этого типа есть ФЛАГ РќРђРџРАВЛЕНР?РЇ. Флаг направления (Direct Flag) РІ регистре состояния определяет направление обработки строк. Если РѕРЅ равен 1, то адрес уменьшается, Р° если РѕРЅ сброшен РІ 0, то адрес увеличивается. Флаг направления позволяет РѕРґРЅРѕРјСѓ набору строковых команд обслуживать РѕР±Р° направления РІ зависимости РѕС‚ установки флага. Р’ некоторых случаях желательно пересылать строку СЃ увеличением адресов, РЅРѕ РёРЅРѕРіРґР° лучше использовать уменьшение адреса. Сама величина инкремента или декремента адреса определяется размером операнда. Например, для символьных строк, РІ которых размер операндов равен 1 байту, команды обработки строк изменяют адрес РЅР° 1 после каждой операции. Если обрабатывается массив целых чисел, РІ котором каждый операнд занимает 4 байта, то строковые команды изменяют адрес РЅР° 4.
28. Стек - структура данных, РІ которой доступ Рє элементам организован РїРѕ принципу «последним пришёл — первым вышел»). Чаще всего принцип работы стека сравнивают СЃРѕ стопкой тарелок: чтобы взять вторую сверху, нужно снять верхнюю. Добавление элемента, называемое также проталкиванием (push), возможно только РІ вершину стека (добавленный элемент становится первым сверху). Удаление элемента, называемое также выталкиванием (pop), тоже возможно только РёР· вершины стека, РїСЂРё этом второй сверху элемент становится верхним. Стек — это область оперативной памяти, специально выделяемая для временного хранения данных программы. Для стека РІ структуре программы предусмотрен отдельный сегмент (если программист забыл описать сегмент стека, компоновщик tlink выдаст предупреждающее сообщение). Для стека можно отвести любую область памяти, РЅРѕ ее размер зависит РѕС‚ режима работы микропроцессора Рё ограничивается 64 Кбайт (или 4 Гбайт РІ защищенном режиме), Р° начальный адрес должен быть выровнен РЅР° границу параграфа (С‚.Рµ. Рґ.Р±. кратным 16). !!! Даже если сама программа РЅРµ использует стек, сегмент стека РІ программе РІСЃРµ равно надо описывать.Так как стек программы использует РћРЎ РїСЂРё обработке прерываний, возникающих РІРѕ время выполнения программы. Рекомендуемый размер стека (СЃ запасом) - 128 байтов. Р’ каждый момент времени доступен только РѕРґРёРЅ стек, адрес сегмента которого содержится РІ регистре ss. Ртот стек называется текущим. Особенности организации стека: 1. запись Рё чтение данных РІ стеке осуществляется РІ соответствии СЃ принципом LIFO (Last In First Out — “последним пришел, первым ушел”); 2. РїРѕ мере записи данных стек растет РІ сторону младших адресов. Рта особенность заложена РІ алгоритм команд работы СЃРѕ стеком; Др. словами, стек заполняется СЃРЅРёР·Сѓ вверх: первый элемент записывается РІ самый конец стека (РІ ячейку СЃ наибольшим адресом), Р° следующий элемент записывается «над» РЅРёРј. 3. РїСЂРё чтении РёР· стека первым всегда удаляется верхний элемент, поэтому РЅРёР· стека фиксирован, Р° вершина стека РІСЃРµ время сдвигается. Текущее положение этой вершины наз. вершиной стека. Адрес вершины стека храниться РІ регистре SP (stack pointer, указатель стека). Рў.Рµ. РІ регистре SP хранится смещение той ячейки, РІ которой находится элемент, записанный РІ стек последним. Смещение относительно начала сегмента стека. Р?так, абсолютный адрес вершины стека задается парой сегментов SS:SP. Команды работы СЃРѕ стеком неявно изменяют этот регистр так, чтобы РѕРЅ указывал всегда РЅР° последний записанный РІ стек элемент. Если стек РїСѓСЃС‚, то значение esp равно адресу последнего байта сегмента, выделенного РїРѕРґ стек. Замечание: Регистр ss автоматически используется процессором для выполнения всех команд, работающих СЃРѕ стеком. Рто означает, что РїСЂРё использовании регистров esp/sp Рё ebp/bp для адресации памяти ассемблер автоматически считает, что содержащиеся РІ нем значения представляют СЃРѕР±РѕР№ смещения относительно сегментного регистра ss Рё поэтому префикс SS можно РЅРµ указывать. 4. Рлементы стека РјРѕРіСѓС‚ иметь любой размер (байт, слово Рё С‚.Рґ.). РќРѕ команды записи Рё чтения, предназначенные для стека, работают только СЃРѕ словами, С‚.Рµ. информация, помещаемая РІ стек Рё извлекаемая РёР· него, имеет длину 2 байта.
Для работы со стеком предназначены три регистра: •ss — сегментный регистр стека; •sp/esp — регистр указателя стека; •bp/ebp — регистр указателя базы кадра стека.
|
||||||||
|