Скачиваний:
8
Добавлен:
09.05.2014
Размер:
65.54 Кб
Скачать
  1. Как расшифровывается CISC и RISC. Что это такое? К кому из этих терминов относится процессор Intel 80486?

CISC (Complex Instruction Set Computing) — процессоры (компьютеры) с полным набором инструкций.

Концепция проектирования процессоров, которая характеризуется следующим набором свойств:

  • Нефиксированным значением длины команды.

  • Арифметические действия, кодируется в одной инструкции.

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

Типичными представителями являются процессоры на основе x86 команд.

RISC (Reduced Instruction Set Computing) — вычисления с сокращённым набором команд.

Это концепция проектирования процессоров, которая во главу ставит следующий принцип: более компактные и простые инструкции выполняются быстрее. Многие ранние RISC-процессоры даже не имели команд умножения и деления.

Характерные особенности RISC-процессоров:

  • Фиксированная длина машинных инструкций (например, 32 бита) и простой формат команды.

  • Специализированные команды для операций с памятью — чтения или записи. Операции вида «прочитать-изменить-записать» отсутствуют. Любые операции "изменить" выполняются только над содержимым регистров (т.н. load-and-store архитектура).

  • Большое количество регистров общего назначения (32 и более).

  • Отсутствие поддержки операций вида "изменить" над укороченными типами данных - байт, 16 битное слово.

  • Отсутствие микропрограмм внутри самого процессора. То, что в CISC процессоре исполняется микропрограммами, в RISC процессоре исполняется как обыкновенный (хотя и помещенный в специальное хранилище) машинный код, не отличающийся принципиально от кода ядра ОС и приложений.

486 процессор имел комбинированная архитектуру - CISC-процессор и RISC-ядро. 486 модель стала последней в x86 семействе, а на смену ему пришло новое - семейство Pentium`ов.

  1. Кратко опишите программную модель архитектуры IA-32.

Программную модель процессора в архитектуре IA-32 процессоров Intel составляет следующий набор ресурсов:

- пространство адресуемой памяти до 232 - 1 байт (4 Гбайт), для Pentium III/IV -до 236 - 1 байт (64 Гбайт);

- набор регистров для хранения данных общего назначения;

- набор сегментных регистров;

- набор регистров состояния и управления;

- набор регистров устройства вычислений с плавающей точкой (сопроцессора);

- набор регистров целочисленного MMX-расширения, отображенных на регистры сопроцессора ;

- набор регистров MMX-расширения с плавающей точкой;

- программный стек;

Это основной набор ресурсов. Кроме того, к ресурсам, поддерживаемым архитектурой IA-32, необходимо отнести порты ввода-вывода, счетчики мониторинга производительности.

  1. Перечислите регистры общего назначения. Схематично нарисуйте один из них. Для чего они нужны?

АХ – Accumulator (регистр-аккумулятор) – по умолчанию используется для задания одного из операндов команды и для представления результата.

СХ – Counter (счетчик) – по умолчанию используется, во-первых, как счетчик числа повторения циклов в команде "организация цикла" (LOOP); во-вторых, для задания числа сдвигов в командах сдвигов (его младший байт – CL); в-третьих, для задания числа элементов обрабатываемых строк (цепочек) в командах обработки строк (MOVS, CMPS и т.д.).

DX –Data (регистр данных) – по умолчанию используется как расширение аккумулятора со стороны старших разрядов в командах умножения и деления.

ВХ –Base (базовый регистр) – по умолчанию используется как базовая компонента эффективного адреса операнда, находящегося в памяти.

SP – Stack Pointer (указатель стека) – по умолчанию используется для адресации вершины стека.

ВР – Base Pointer (указатель базы) – по умолчанию используется как базовая компонента эффективного адреса операнда в памяти по аналогии с ВХ.

SI – Source Index (индекс источника) – по умолчанию используется для задания индексной компоненты ЕА, а также для адресации элементов строки-источника в командах обработки строк.

DI – Distination Index (индекс приемника) – по умолчанию используется аналогично SI для задания индексной компоненты ЕА, а также для адресации элементов строки-приемника в командах обработки строк.

Отдельные байты этих регистров используют то же наименование, что и полный регистр (A, C, D, B) с добавлением приставки L – младший, Н – старший, для соответствующих байтов регистра.

  1. К акие типы сегментов бывают?

– Code Segment (сегмент кода – машинной программы)

– Stack Segment (сегмент стека)

– Data Segment (сегмент данных)

– Extra Segment (дополнительный сегмент)

  1. Какие бывают модели памяти. Чем они отличаются?

Процессор аппаратно поддерживает две модели использования оперативной памяти.

В сегментированной модели программе выделяются непрерывные области памяти (сегменты), а сама программа может обращаться только к данным, которые находятся в этих сегментах.

Страничную модель можно рассматривать как надстройку над сегментирован ной моделью. В случае использования этой модели оперативная память рас сматривается как совокупность блоков фиксированного размера (4 Кбайт и бо лее). Основное применение этой модели связано с организацией виртуальной памяти, что позволяет операционной системе использовать для работы пр­ грамм пространство памяти большее, чем объем физической памяти.

  1. Как происходит компиляция и компоновка программы?

Что бы из простого файла с текстом программы получить программу, ее компилируют.

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

  1. Для чего нужен компоновщик?

Компоновщик — программа, которая производит компоновку — принимает на вход один или несколько объектных модулей и собирает по ним исполняемый модуль. Для связывания модулей, компоновщик использует таблицы имён, созданные компилятором в каждом из объектных модулей.

  1. Переведите 4сa01f (16) в десятичную систему счисления.

(4CA01F)16 = 4 * 165 + 12 * 164 + 10 * 163 + 0 * 162 + 1 * 161 + 15 * 160 =

= 4194304 + 786432 + 40960 + 16 + 15 = (5021727)10

  1. Сложите 2 шестнадцатиричных числа столбиком: B15C + 1F42

B15C

+ 1F42

D09E

  1. Сложите 2 шестнадцатиричных числа столбиком: 87A9 + 6E12, а затем переведите получившееся число в 5-ричную систему счисления.

87A9

+ 6E12

F5BB

F5BB55

312522

9D411

1F711

6433

1400

400

044

(F5BB)16 = (4003112)5

Проверка

(4003112)5 = 4*56 + 3*53 + 1*52 +1*51 + 2*50 = F424 + 177 + 19 + 5 + 2 = (F5BB)16

  1. С помощью 3-х команд на языке Ассемблер сложите 2 числа AX=1785 и 533h. Также выполните сложение столбиком. Чему будет равен старший байт AH регистра AX после выполнения операции сложения?

mov ax, 1785

mov bx, 533h

add ax, bx

1785

+ 533

1CB8

Тогда старший байт регистра AX равен (1C)16 = (00011100)2

Домашнее задание № 1

«Основы программирования на Ассемблере»

Работу выполнил

студент гр. 2100

Голубцов Евгений

Работу принял

Лукьянов Н. М.

2009