Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CП_Ответы.doc
Скачиваний:
15
Добавлен:
27.09.2019
Размер:
281.09 Кб
Скачать
  1. Назовите виды адресации операндов в памяти и принципы организации каждого вида адресации. Дайте описание синтаксиса каждого вида адресации. Приведите пример каждого вида адресации.

Прямая адресация: Эффективный адрес операнда содержится в самой команде и берется непосредственно из поля смещения машинной команды, т.е. для его формирования не используется никаких дополнительных источников или регистров. Полученное значение однозначно определяет ячейку памяти в сегменте данных. 1Относительная прямая адресация - Используется для команд условных переходов, для указания относительного адреса перехода. Эффективный адрес берется непосредственно из поля смещения машинной команды, 2Абсолютная прямая адресация. Эффективный адрес является частью машинной команды и формируется из значения поля смещения в команде. Для формирования физического адреса операнда в памяти микропроцессор складывает это поле со сдвинутым на 4 бита значением сегментного регистра. 2Косвенная адресация: Косвенная базовая регистровая адресация Эффективный адрес операнда может находитья в любом из регистров общего назначения (исключая регистры sp/esp,bp/ebp). Т.к. содержимое регистра легко изменить в ходе работы программы, данный способ адресации позволяет динамически назначить адрес операнда для некоторой машинной команды (mov ax, [ecx]), Косвенная базовая регистровая адресация со смещением (mov ax, [edx+3h]), Косвенная индексная адресация со смещением (mov ax, mas[esi*2]), Косвенная базовая индексная адресация (mov eax, [esi] [edx]), Косвенная базовая индексная адресация сосмещением (mov eax, [esi+5] [edx]).

  1. Перечислите команды линейного сдвига. Опишите синтаксис каждой команды и принцип ее работы. Укажите отличие команд арифметического линейного сдвига от команд логического сдвига. Приведите примеры использования команд линейного сдвига.

Команды линейного сдвига: SHL, SHR

Синтаксис:

SHL операнд,счетчик_сдвигов

SHR операнд,счетчик_сдвигов

SHL — логический сдвиг влево. Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчик_сдвигов. Справа в позицию младшего бита вписываются нули.

SHR — логический сдвиг вправо. Содержимое операнда сдвигается вправо на количество битов, определяемое значением счетчик_сдвигов. Слева в позицию старшего (знакового) бита вписываются нули.

Команды арифметического линейного сдвига отличаются от команд логического сдвига тем, что они особым образом работают со знаковым разрядом операнда:

Пример:

shl ah,4

shr bx,6

  1. Перечислите директивы резервирования и инициализации данных простых типов. Охарактеризуйте каждый тип с точки зрения формата представления и диапазона принимаемых значений. Приведите примеры использования директив резервирования и инициализации данных.

db — резервирование памяти для данных размером 1 байт. Директивой db можно задавать следующие значения: выражение или константу, принимающую значение из диапазона;8-битовое относительное выражение, использующее операции HIGH и LOW; символьную строку из одного или более символов. dw — резервирование памяти для данных размером 2 байта. Директивой dw можно задавать следующие значения: выражение или константу, принимающую значение из диапазона; выражение, занимающее 16 или менее бит, в качестве которого может выступать смещение в 16-битовом сегменте или адрес сегмента; 1- или 2-байтовую строку, заключенная в кавычки. dd — резервирование памяти для данных размером 4 байта. Директивой dd можно задавать следующие значения: выражение или константу, принимающую значение из диапазона; относительное или адресное выражение, состоящее из 16-битового адреса сегмента и 16-битового смещения; строку длиной до 4 символов, заключенную в кавычки. Df , dp — резервирование памяти для данных размером 6 байт. Директивами df и dp можно задавать следующие значения: выражение или константу, принимающую значение из диапазона; относительное или адресное выражение, состоящее из 32 или менее бит (для i80386) или 16 или менее бит (для младших моделей микропроцессоров Intel); адресное выражение, состоящее из 16-битового сегмента и 32-битового смещения; константу; строку длиной до 6 байт, заключенную в кавычки.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]