Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Основы микропроцессорной техники – тест 4

Главная / Аппаратное обеспечение / Основы микропроцессорной техники / Тест 4

Упражнение 1:


Номер 1

Что такое операнд?

Ответ:

&nbsp(1) код команды&nbsp

&nbsp(2) адрес команды&nbsp

&nbsp(3) код данных&nbsp

&nbsp(4) адрес адреса данных&nbsp

&nbsp(5) адрес данных&nbsp



Номер 2

Какой метод адресации наиболее удобен для последовательной обработки массивов данных?

Ответ:

&nbsp(1) абсолютная адресация&nbsp

&nbsp(2) непосредственная адресация&nbsp

&nbsp

(3) автоинкрементная адресация&nbsp

&nbsp(4) косвенно-регистровая адресация&nbsp

&nbsp(5) прямая адресация&nbsp



Номер 3

Каково основное преимущество сегментирования памяти?

Ответ:

&nbsp(1) сегментирование упрощает задание адреса операнда&nbsp

&nbsp(2) сегментирование упрощает структуру процессора&nbsp

&nbsp(3) сегментирование упрощает переключение между сегментами данных и между сегментами программ&nbsp

&nbsp(4) сегментирование позволяет увеличить объем памяти системы&nbsp

&nbsp(5) сегментирование увеличивает быстродействие процессора&nbsp



Упражнение 2:


Номер 1

Какой метод адресации предполагает размещение операнда внутри выполняемой программы?

Ответ:

&nbsp(1) абсолютная адресация&nbsp

&nbsp(2) регистровая адресация&nbsp

&nbsp(3) косвенная адресация&nbsp

&nbsp(4) непосредственная адресация&nbsp

&nbsp(5) операнд всегда находится внутри программы&nbsp



Номер 2

Каково разделение функций между внутренними регистрами процессора?

Ответ:

&nbsp(1) назначение регистров зависит от типа процессора&nbsp

&nbsp(2) все регистры выполняют одни и те же функции&nbsp

&nbsp(3) половина регистров используется для данных, половина — для адресации&nbsp

&nbsp(4) каждый регистр выполняет свою функцию&nbsp

&nbsp(5) одни регистры специализированные, другие — универсальные&nbsp



Номер 3

Какой бит отсутствует в PSW процессора 8086?

Ответ:

&nbsp(1) бит нулевого результата&nbsp

&nbsp(2) бит переноса&nbsp

&nbsp(3) бит переполнения&nbsp

&nbsp(4) бит четности&nbsp

&nbsp(5) бит разрешения ПДП&nbsp



Упражнение 3:


Номер 1

Какой регистр определяет адрес текущей выполняемой команды?

Ответ:

&nbsp(1) это может быть любой из регистров&nbsp

&nbsp(2) специализированный регистр&nbsp

&nbsp(3) любой из адресных регистров&nbsp

&nbsp(4) регистр-аккумулятор&nbsp

&nbsp(5) регистр-указатель стека&nbsp



Номер 2

Какой регистр процессора 8086/8088 определяет адрес ввода/вывода?

Ответ:

&nbsp(1) АХ&nbsp

&nbsp(2) BX&nbsp

&nbsp(3) CX&nbsp

&nbsp

(4) DX&nbsp

&nbsp(5) CS&nbsp



Номер 3

Что такое регистр указателя?

Ответ:

&nbsp(1) адрес начала сегмента&nbsp

&nbsp(2) адрес текущей выполняемой команды&nbsp

&nbsp(3) номер сегмента&nbsp

&nbsp(4) размер сегмента&nbsp

&nbsp(5) смещение относительно начала сегмента&nbsp



Главная / Аппаратное обеспечение / Основы микропроцессорной техники / Тест 4

Адрес – выполняемая команда – Большая Энциклопедия Нефти и Газа, статья, страница 1

Cтраница 1

Адрес выполняемой команды хранится в адресном регистре АР емкостью 16 бит.

В этом регистре может быть записан адрес любого из 65536 ( 216) слов, хранимых в ЗУ. Адрес выполняемой команды в адресный регистр поступает из счетчика команд СК, в котором хранится адрес следующей команды. Обычно СК, подготавливая следующую команду после выполнения текущей, увеличивает отсчет на единицу. В некоторых случаях счетчик команд делает дополнительные отсчеты.  [1]

Однако указывать адрес следующей выполняемой команды в большинстве машин не требуется, поскольку повсеместно используется память с произвольным доступом. Счетчик команд исполняет функцию стрелки, всегда указывающей на подлежащую выполнению команду. Аппаратно PC – это регистр, хранящий адрес текущей команды; он модифицируется в процессе ее выполнения: в нем формируется адрес следующей.  [2]

Блок-схема регистра сдвига.| Схемы однотактных регистров сдвига на.  [3]

Кодом модификации здесь является адрес выполняемой команды. Модифицируемость адреса определяется служебным признаком команды.  [4]

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

Биты 40 – 63 содержат адрес следующей выполняемой команды.  [6]

Биты 40 – 63 содержат адрес следующей выполняемой команды.  [7]

Биты 40 – 63 содержат адрес следующей выполняемой команды.  [8]

Регистр R7 служит счетчиком команд и содержит

адрес очередной выполняемой команды. При выполнении команд передачи управления содержимое регистра состояния сохраняется в стеке. Регистры адреса и данных осуществляют связь операционного блока с внутренней магистралью.  [9]

Регистр адреса команд ( IAR) – содержит адрес следующей выполняемой команды.  [10]

Функция счетчика команд F – lp осуществляет контроль адреса выполняемой команды и формирование адреса следующей команды; кроме того, эта функция осуществляет расчет или загрузку новых значений счетчика команд при выполнении различных переходов. При выполнении микропроцессором предварительной выборки команд функция FIP следит также за адресом этой выборки.  [11]

В простых программных процессах для продолжения программы после прерывания достаточно адреса следующей выполняемой команды

. При возрастающей сложности ЭВМ эту информацию необходимо значительно расширить. Чтобы можно было прервать программу в каком-нибудь месте, а затем снова ее продолжить, наряду с адресом команды требуется передать информационные данные маски относительно прерываний, информацию о защите ЗУ, разряды состояния системы, сообщения о длине команд и условия разветвлений. Эта важная для выполнения программы информация управления о имеющемся состоянии программы хранится в регистре состояния, или, как его еще обозначают, в регистре состояния программы.  [12]

Счетчик адреса команд представляет собой 13-разрядный регистр, в котором хранится адрес МОЗУ выполняемой команды, и его содержимое автоматически увеличивается на единицу после выполнения команды. При выполнении команды передачи управления в него записывается адрес команды, которая будет выполняться следующей.  [13]

Он происходит при совпадении кодовой комбинации, набранной на пульте, и соответствующего адреса выполняемой команды.  [14]

Тумблер Останов по 3-му адресу включает режим, при котором машина останавливается, если третий адрес выполняемой команды совпадает с номером ячейки, набранным на тумблерном регистре записи команд.  [15]

Страницы:      1    2    3    4

Что такое регистр инструкций? Ultimate Guide

Что такое регистр инструкций? Это часть компьютера, которая хранит адрес в памяти. Он получает ввод от ПК при доступе к инструкции. Когда он загружается с адресом, он может получить доступ к словам данных из памяти. Это временный регистр, который используется для многоцикловых расчетов. Что такое регистр инструкций? Вот что он делает. Вы можете узнать больше об этом в этой статье.

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

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

В общем смысле регистр команд представляет собой ряд физических переключателей, расположенных на печатной плате. Эти переключатели эквивалентны биту. Защелки хранят двоичные данные, которые преобразуются в коды инструкций и адреса памяти. В типичном компьютере регистр инструкций содержит адрес инструкции, которая выполняется в данный момент, а также саму фактическую инструкцию. Кроме того, информация передается в регистр инструкций через программный счетчик, который переходит к следующей инструкции.

Регистр инструкций в компьютере — это место, где хранятся машинные инструкции. Он является частью центрального процессора и выполняет различные функции. Как правило, регистр инструкций содержит машинную инструкцию, выполняемую в данный момент. В отличие от одного процессора, современные процессоры могут выполнять некоторые шаги не по порядку и одновременно декодировать несколько инструкций. Можно заставить компьютер выполнять несколько задач одновременно, если у него есть ЦП с большим количеством регистров.

Регистр команд является важной частью процессора. Он декодирует код операции и выделяет ему ресурсы памяти. Он также используется для управления другими частями процессора. Основной функцией регистра команд является сохранение активного значения памяти. Код программы представляет собой массив битов. Одна и та же инструкция может быть назначена нескольким адресам. Регистр инструкций — это память процессора.

Содержание

Как работают регистры инструкций

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

Роль регистров инструкций в ЦП

Регистр инструкций является неотъемлемой частью цикла обработки инструкций ЦП. ЦП извлекает текущую инструкцию из памяти и загружает ее в регистр инструкций. Затем регистр инструкций хранит инструкцию до тех пор, пока процессор не декодирует и не выполнит ее. После выполнения инструкции регистр инструкций обновляется следующей инструкцией, и процесс продолжается.

Функция регистра команд

Основной функцией регистра инструкций является хранение текущей инструкции, которую выполняет процессор. Инструкции обычно закодированы в двоичном или машинном коде, а регистр инструкций предназначен для хранения этих инструкций в формате, понятном процессору.

Шаги, связанные с обработкой инструкций

ЦП выполняет инструкции в виде серии шагов, известных как цикл обработки инструкций. Цикл обработки инструкции состоит из трех шагов: выборка, декодирование и выполнение.

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

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

Типы регистров инструкций

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

Различные типы регистров инструкций

  1. Регистр адреса памяти (MAR): этот тип регистра инструкций содержит адрес памяти следующей инструкции, которая будет выбрана из памяти. Процессор использует адресный регистр памяти, чтобы найти команду в памяти перед ее загрузкой в ​​регистр инструкций для декодирования и выполнения.
  2. Регистр данных памяти (MDR): Регистр данных памяти — это тип регистра инструкций, который содержит данные, извлеченные из памяти, или данные, которые должны быть записаны в память. Процессор использует MDR для хранения данных перед их сохранением в памяти или извлечением из памяти.
  3. Указатель инструкции (IP): Указатель инструкции — это тип регистра инструкции, который содержит адрес памяти следующей инструкции, которая должна быть выполнена. Процессор использует указатель команд для отслеживания последовательности выполнения программы.
  4. Счетчик программ (ПК): Счетчик программ аналогичен указателю инструкций, но он содержит адрес памяти текущей выполняемой инструкции, а не следующей инструкции. Счетчик программ используется в конвейерах инструкций для ускорения обработки инструкций.

Назначение каждого типа

  1. Регистр адреса памяти (MAR): Регистр адреса памяти используется для размещения команды, которая должна быть извлечена из памяти. Без MAR процессор не смог бы найти следующую команду для выполнения.
  2. Регистр данных памяти (MDR): Регистр данных памяти используется для хранения данных, извлеченных из памяти или записанных в память. Без MDR процессор не смог бы получить доступ к данным, хранящимся в памяти.
  3. Указатель инструкций (IP): Указатель инструкций используется для отслеживания последовательности выполнения программы. Без указателя инструкций процессор не знал бы, какую инструкцию выполнять следующей.
  4. Счетчик программ (ПК): Счетчик программ используется для ускорения обработки инструкций путем предварительной выборки и декодирования следующей инструкции до выполнения текущей инструкции.

Примеры регистров инструкций

Различные архитектуры ЦП используют разные типы регистров инструкций. Например, архитектура x86 использует указатель команд (IP) и счетчик команд (PC) для отслеживания последовательности выполнения программы, в то время как архитектура ARM использует регистр состояния программы (PSR) для отслеживания состояния программы.

В заключение, регистры команд играют жизненно важную роль в архитектуре ЦП и предназначены для выполнения определенных функций внутри ЦП. Различные типы регистров команд включают регистр адреса памяти (MAR), регистр данных памяти (MDR), указатель команд (IP) и программный счетчик (PC). Понимание назначения регистров команд каждого типа необходимо для понимания того, как работают процессоры и как они обрабатывают инструкции.

Особенности регистра инструкций

Регистры инструкций имеют различные характеристики, определяющие их возможности и функции. Эти функции имеют решающее значение для определения типа регистра команд, подходящего для конкретной архитектуры процессора и приложения.

Размер и формат регистра инструкций

Размер и формат регистра инструкций зависят от архитектуры процессора и типа выполняемой инструкции. Регистры инструкций обычно предназначены для хранения фиксированного количества битов, которое определяет максимальное количество инструкций, которые может хранить регистр. Размер регистра команд может варьироваться от 8 до 64 бит и более в зависимости от архитектуры процессора.

Формат регистра инструкций определяет, как кодируется инструкция и как процессор декодирует и выполняет инструкцию. Существуют различные архитектуры набора инструкций (ISA), которые определяют формат регистра инструкций. Примеры ISA включают x86, ARM и MIPS.

Наборы инструкций, поддерживаемые регистром инструкций

Набор инструкций, поддерживаемый регистром инструкций, определяет типы операций, которые может выполнять регистр. Различные ISA определяют разные наборы инструкций, которые определяют типы инструкций, которые могут выполняться процессором. Некоторые регистры инструкций предназначены для поддержки конкретной ISA, в то время как другие могут поддерживать несколько ISA.

Связь между регистрами инструкций и другими компонентами

Регистры инструкций тесно связаны с другими компонентами ЦП, такими как счетчик программ (ПК), указатель команд (IP) и другие регистры. Счетчик программ содержит адрес памяти следующей инструкции, которую нужно извлечь, а указатель инструкций содержит адрес следующей инструкции в процессорах на базе x86. Другие регистры, такие как регистры накопителя и регистры общего назначения, содержат данные, используемые при выполнении инструкций.

В заключение отметим, что характеристики регистра команд важны для определения типа регистра, подходящего для конкретной архитектуры процессора и приложения. Размер и формат регистра, поддерживаемые наборы инструкций и взаимосвязь с другими компонентами ЦП — все это важные факторы при проектировании регистров инструкций.

Важность регистров инструкций в архитектуре компьютера

Регистры инструкций играют важную роль в архитектуре компьютера, облегчая выполнение инструкций и общую работу ЦП. Понимание важности регистров команд необходимо для разработки эффективных компьютерных систем и оптимизации производительности.

Эффективная обработка инструкций

Регистры инструкций обеспечивают эффективную обработку инструкций, сохраняя текущую выполняемую команду и облегчая декодирование и выполнение инструкций. Это позволяет ЦП выполнять инструкции в виде серии шагов, известных как цикл обработки инструкций, что повышает эффективность ЦП.

Выполнение сложных инструкций

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

Поддержка нескольких наборов инструкций

Регистры инструкций могут поддерживать несколько наборов инструкций, что позволяет ЦП выполнять разные типы инструкций из разных ISA. Эта гибкость необходима при проектировании компьютерных систем, способных выполнять широкий спектр приложений и задач.

Оптимизированная производительность

Регистры инструкций играют решающую роль в оптимизации производительности ЦП за счет сокращения времени, необходимого для выполнения инструкций. Удерживая текущую выполняемую инструкцию, регистры инструкций позволяют ЦП выполнять инструкции за один такт, сокращая время, необходимое для обработки инструкций.

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

Часто задаваемые вопросы

Где находится регистр инструкций в компьютере?

Регистр команд — это компонент ЦП (центрального процессора), который является основным процессором компьютера. Регистр инструкций обычно находится внутри ЦП, в частности, в блоке управления, где он содержит текущую выполняемую инструкцию и облегчает декодирование и выполнение инструкций. Блок управления отвечает за управление работой ЦП и координацию выполнения инструкций посредством использования регистров инструкций, среди других компонентов.

В чем разница между регистром адреса и регистром инструкций?

Регистр адреса и регистр инструкций — это регистры, используемые в компьютерной архитектуре, но они выполняют разные функции.

Адресный регистр — это регистр, в котором хранится адрес памяти данных или инструкций, к которым ЦП должен получить доступ. Он используется для облегчения доступа к памяти данных и инструкций из ОЗУ (оперативной памяти) или других устройств хранения. Адресный регистр обычно используется вместе с другими регистрами, такими как регистры данных, для выполнения операций с данными или инструкциями.

С другой стороны, регистр инструкций — это регистр, в котором хранится текущая инструкция, выполняемая ЦП. Регистр инструкций отвечает за хранение двоичного кода инструкции, которую ЦП выполняет в данный момент. Регистр инструкций является ключевым компонентом блока управления ЦП и используется для облегчения декодирования и выполнения инструкций.

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

Является ли память команд регистром?

Память инструкций — это не регистр, а компонент компьютерной системы, в котором хранятся инструкции для выполнения ЦП. Память инструкций обычно состоит из ПЗУ (памяти только для чтения) или флэш-памяти и используется для хранения двоичного кода инструкций, которые ЦП должен выполнить.

В отличие от этого, регистры представляют собой небольшие, быстрые области памяти, интегрированные в ЦП и используемые для хранения данных и инструкций во время выполнения программ. Регистры имеют очень быстрое время доступа и используются для временного хранения данных, пока они обрабатываются ЦП.

Хотя память инструкций и регистры выполняют разные функции, они оба являются важными компонентами ЦП и работают вместе, облегчая выполнение инструкций и работу компьютерных систем. Память инструкций предоставляет ЦП инструкции, необходимые для выполнения, а регистры используются для хранения и обработки данных во время выполнения программ.

регистров

регистров
Содержание Вверх << >>

Регистры

В 16-битном режиме, например, в процессоре Pentium при работе в качестве Virtual 8086 (это режим, используемый, когда Windows 95 отображает приглашение DOS), процессор предоставляет программисту 14 внутренних регистров по 16 бит каждый широкий. Они сгруппированы в несколько категорий следующим образом:
  • Четыре регистра общего назначения: AX, BX, CX и DX. Каждый из них является комбинация двух 8-битных регистров, которые доступны по отдельности как AL, BL, CL, DL («младшие» байты) и AH, BH, CH и DH («старшие» байты).
    Для Например, если AX содержит 16-битное число 1234h, то AL содержит 34h, а AH содержит 12h.
  • Четыре специальных регистра: SP, BP, SI и DI.
  • Четыре сегментных регистра: CS, DS, ES и SS.
  • Указатель инструкций, IP (иногда называемый программой прилавок).
  • Регистр флагов состояния, FLAGS.

Хотя я называю первые четыре регистра «общего назначения», каждый из них они предназначены для того, чтобы играть определенную роль в общем использовании:

  • AX является «аккумулятором»; некоторые операции, такие как MUL и DIV требуют, чтобы один из операндов находился в аккумулятор. Некоторые другие операции, такие как ADD и SUB, могут быть применяется к любому из регистров (то есть к любому из восьми общих и регистры специального назначения), но более эффективны при работе с аккумулятор.
  • BX — «базовый» регистр; это единственный регистр общего назначения. который может использоваться для косвенной адресации. Например, инструкция MOV [BX], AX заставляет содержимое AX сохраняться в памяти местоположение, адрес которого указан в BX.
  • CX — регистр «счетчика». Инструкции цикла (LOOP, LOOPE и LOOPNE), смещение и вращение инструкции (RCL, RCR, ROL, ROR, SHL, SHR и SAR), а также строковые инструкции (с префиксами REP, REPE и REPNE) все используют регистр счетчика, чтобы определить, сколько раз они будут повторяться.
  • DX — регистр «данных», он используется вместе с AX для операции MUL и DIV размером слова, а также может содержать порт номер для инструкций IN и OUT, но в основном доступны как удобное место для хранения данных, как и все другие регистры общего назначения.

Ниже приведены краткие описания четырех специальных регистров:

  • SP — указатель стека, указывающий текущую позицию вершины стек. Как правило, вы никогда не должны изменять это напрямую, так как механизмы вызова и возврата подпрограммы и прерывания зависят от содержимого стек.
  • BP — это базовый указатель, который можно использовать для косвенной адресации. похож на БХ.
  • SI — исходный индекс, используемый в качестве указателя на текущий отображаемый символ. читать в строковой инструкции (LODS, MOVS или CMPS). Это также доступен как смещение для добавления к BX или BP при выполнении непрямого адресация; например, инструкция MOV [BX+SI], AX копирует содержимое AX в ячейку памяти, адрес которой является суммой содержание BX и SI. 916) байт. К поддержка машин с более чем 64 КБ физической памяти, Intel реализована концепция сегментированной памяти . В любой момент времени 16-битный адрес будет интерпретироваться как смещение в пределах 64-килобайтного сегмента. определяется одним из четырех сегментных регистров (CS, DS, ES и SS).

    Например, в инструкции MOV [BX], AX, упомянутой выше, Регистр BX действительно обеспечивает смещение местоположения в текущих данных. сегмент; найти истинный физический адрес, по которому содержимое аккумулятор будет сохранен, вы должны добавить значение в BX к адрес начала сегмента данных. Начальный адрес этого сегмента определяется путем взятия 16-битного числа в DS и умножения на 16. Следовательно, если DS содержит 1234h, а BX содержит 0017h, то физический адрес будет 1234ч РАЗ 16+0017ч=12340ч+0017ч=12357ч. (Это вычисление иллюстрирует одну из причин, почему шестнадцатеричная система счисления так полезна; умножение на 16 соответствует сдвигу шестнадцатеричных цифр влево место и добавление нуля.) Мы называем этот комбинированный адрес как 1234:0017 или, в более общем смысле, как DS:BX. 920) памяти. Intel считает что этого будет достаточно для приложений 8086 над его прогнозируемый срок службы около пяти лет с момента его введения в 1978 году; к время, когда микрокомпьютерам требовалось больше мегабайта оперативной памяти, следующий процессор Intel (iAPX432) должен был быть доступен с 32-битное адресное пространство (способно адресовать 4G — более 4 миллиардов памяти локации). Однако дебют IBM PC в 1981 г. популярность заставила Intel продолжить семейство 80×86 процессоры, совместимые с предыдущими версиями, включая поддержку режим, в котором доступен только 1M памяти. Процессоры со времен 80286 также предусмотрен «защищенный» режим работы, который в Pentium предоставляет каждому процессу плоское 32-битное адресное пространство размером до 4G.

    Вы можете подумать, что регистр сегмента должен будет предоставлять только верхние 4 бита, чтобы расширить адрес до 20 бит, но рассмотрим один последствия наличия только 16 различных, непересекающихся сегментов: каждый сегмент должен был бы занимать полные 64 КБ памяти, даже если бы только небольшая часть этого пространства была необходима. Разрешив сегмент начинать с любого адреса, кратного 16, память может быть распределяется намного эффективнее — если одной программе нужно только 4K для ее сегмент кода, то теоретически операционная система может загрузить еще один программу в сегмент, начинающийся всего на 4 КБ выше начала первого. Из Конечно, MS-DOS на самом деле не настолько сложна, но дизайнеры Intel хотел, чтобы это было возможно.

    Каждый сегментный регистр имеет свое особое назначение:

    • CS определяет сегмент «кода»; здесь находится исполняемый файл находится код программы. Он не может быть изменен напрямую программиста, за исключением выполнения одной из инструкций ветвления. Один одной из причин отделения сегмента кода от других сегментов является что программы с хорошим поведением никогда не изменяют свой код во время выполнения; таким образом, сегмент кода может быть идентифицирован как «только для чтения». упрощает работу тайника, так как не требуется никаких усилий для поддержания согласованность между кэшем и основной памятью. Он также допускает несколько экземпляры одной программы для одновременного запуска (в многозадачном операционная система), все они используют один и тот же сегмент кода в памяти; каждый экземпляр имеет свои собственные данные и сегменты стека, где информация специфичные для экземпляра сохраняются. Представьте несколько окон, каждое из которых работает Word в другом документе; каждому нужен свой сегмент данных для хранить свой документ, но все они могут выполнять одну и ту же загруженную копию Word.
    • DS определяет сегмент данных; это сегмент по умолчанию для большинство обращений к памяти.
    • ES определяет «дополнительный» сегмент, может использоваться вместо DS когда необходимо получить доступ к данным из двух сегментов одновременно. В частности, регистр DI дает смещение относительно ES при использовании в строке инструкции; например, инструкция MOVSB ​​копирует байт с DS:SI на ES:DI (а также приводит к тому, что SI и DI увеличивается или уменьшается, готов копировать следующий байт).
    • SS определяет сегмент стека; указатель стека SP дает смещение текущей вершины стека в сегменте стека. БП register также дает смещение относительно сегмента стека по умолчанию, для удобного доступа к данным ниже в стеке без модифицировать СП. Как и в случае с SP, вам не следует изменять SS, если вы не знаете именно то, что вы делаете.

    Указатель команд, IP, дает адрес следующий выполняемая команда относительно сегмента кода. Единственный путь изменить это с помощью инструкции перехода.

    Регистр состояния FLAGS представляет собой набор 1-битных значений, которые отражать текущее состояние процессора и результаты последних операции. В 8086 используются девять из шестнадцати битов:

    • Перенос (бит 0): устанавливается, если последняя арифметическая операция закончилась оставшийся бит переноса отрывается от левого конца результата. Это сигнализирует переполнение на беззнаковых числах.
    • Четность (бит 2): устанавливается, если младший байт последних данных операция содержала четное число битов 1 (то есть она сигнализирует четное условие четности).
    • Вспомогательный перенос (бит 4): используется при работе с двоичным кодом. десятичные (BCD) числа.
    • Ноль (бит 6): устанавливается, если последнее вычисление дало нулевой результат. После сравнения (CMP, CMPS или SCAS) это указывает на то, что сравниваемые значения были равны (поскольку их разность был нулевой).
    • Знак (бит 7): устанавливается, если последнее вычисление дало отрицательный результат (a 1 в крайнем левом бите).
    • Трассировка (бит 8): при установке переводит ЦП в одношаговый режим, как используется отладчиками.
    • Прерывание (бит 9): если установлено, прерывания разрешены. Этот бит должен быть очищен, пока процессор выполняет критическую секцию код, который не должен прерываться (например, при обработке другое прерывание).
    • Направление (бит 10): если сброшено, операции со строками перемещаются из младшие адреса в старшие (регистры SI и DI увеличиваются после каждый символ). При установке направление меняется на противоположное (SI и DI уменьшен).
    • Переполнение (бит 11): устанавливается, если последняя арифметическая операция вызвала подписанное переполнение (например, после добавления 0001h к 7FFFh, в результате 8000ч; читается как два дополнительных числа, это соответствует добавлению 1 к 32767 и получению -32768).
    Существует множество операций, которые будут тестировать и манипулировать различными эти флаги, но чтобы получить содержимое всего регистра FLAGS один должен поместить флаги в стек (с помощью PUSHF или путем вызова соответствующий обработчик прерываний с INT), а затем отключите их в другой регистр.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *