- •1. Вычислительный цикл процессора.
- •2. Вентили и логические элементы.
- •3. Понятие архитектуры и микроархитектуры. Классификация вычислительных средств по архитектуре (классификация Флинна).
- •4. Микропроцессор (мп). Состав и основные функции. Процессоры risc и cisc.
- •5. Архитектура ia-32. Режимы работы процессора.
- •6. Архитектура ia-32. Особенности представления информации.
- •7. Архитектура ia-32. Регистры общего назначения и сегментные регистры.
- •8. Архитектура ia-32. Регистры смещений и регистр флагов.
- •9. Архитектура ia-32. Организация памяти.
- •10. Архитектура ia-32. Организация прерываний.
- •11. Ассемблер. Области применения. Достоинства и недостатки.
- •12. Ассемблер. Структура программы. Модель памяти small.
- •13. Ассемблер. Основные типы предложений.
- •14. Ассемблер. Описание сегмента данных.
- •15. Ассемблер. Способы адресации памяти.
- •16. Ассемблер. Команды пересылки данных. Арифметические команды
- •17. Ассемблер. Команды переходов. Процедуры.
- •18. Ассемблер. Команды управления циклами. Команды прерывания.
- •19. Запоминающие устройства. Иерархичная организация памяти. Основные показатели быстродействия системы памяти.
- •20. Физические основы работы внутренней памяти. Энергозависимая память.
- •21. Внутренняя энергонезависимая память.
- •22. Аппаратно-программные методы ускорения обработки данных. Распараллеливание операции
- •23. Аппаратно-программные методы ускорения обработки данных. Кэширование памяти.
- •24. Кэш прямого отображения. Наборно-ассоциативный и ассоциативный кэш.
- •25. Микроархитектурные особенности процессоров x86 I-V поколений.
- •26. Микроархитектурные особенности процессоров x86 VI поколений.
- •27. Микроархитектура NetBurst и Intel Core.
- •28. Архитектура ia-64.
14. Ассемблер. Описание сегмента данных.
В этом сегменте программист определяет данные, которые будут использоваться в программе. По-сути, здесь программист определяет переменные. Это осуществляется посредством специальных директив, с помощью которых транслятор выделяет необходимое количество памяти. Эти директивы имеют следующий формат:
[имя] КС выражение
Имя – имя переменной (константы, или поля данных). Фактически, это имя будет указывать на адрес байта в памяти, где будет храниться первый байт этой переменной.
КС – ключевые слова, могут быть: DB (1), DW(2), DD(4), DQ(8), DT(10)
Выражение показывает, сколько экземпляров данных соответствующего типа содержится в этой переменной (константе или поле), а также какие данные там могут находиться.
Например:
PEREM1 DW 56 – под переменную с именем PEREM1 зарезервировать 2 байта памяти и присвоить ей начальное значение 56.
MASSIV DB 10 DUP (‘ ‘) – под переменную с именем MASSIV зарезервировать 10 байт памяти по одному байту и заполнить их символом пробела.
POLE DB 5 DUP (?) – под переменную с именем POLE зарезервировать 5 байт памяти по одному байту, и не присваивать ей никаких начальных значений.
MESSAGE DB ‘Вами неправильно набран номер $’ – определена строка со значением «Вами неправильно набран номер». Строка может содержать до 255 символов, использование в качестве КС DB и наличие счетчика адреса обязательны.
ADDR DW PEREM1 – переменной ADDR выделить 2 байта памяти и присвоить ей адрес (эффективный) ранее созданной переменной PEREM1.
15. Ассемблер. Способы адресации памяти.
Способы адресации памяти.
Рассмотрим на примере команды MOV
Непосредственная адресация.
Величина операнда непосредственно указывается в команде и может быть задана числом в различных системах счисления. Допускается использование модификаторов.
Примеры:
MOV AX, 10FH; MOV BX, 10H/2
Прямая адресация регистров.
В качестве операнда указывается имя регистра
MOV AX, BX; MOV DX, BX
Адресация ячеек ОП.
Прямая
В качестве адреса ячейки указывается имя переменной (фактически оно означает ее эффективный адрес)
MOV AX, PEREM – передать в AX содержимое переменной PEREM
Косвенная базовая адресация
Эффективный адрес нужной ячейки содержится в одном из регистров.
MOV AX, [CX] – передать в AX содержимое ячейки памяти, адрес которой находится в CX
Косвенная базовая адресация со смещением
Эффективный адрес нужной ячейки вычисляется как сумма базы и смещения.
MOV AX, PEREM[BX] – передать в AX содержимое ячейки памяти, расположенной на BX байт дальше, чем PEREM
MOV AX, [CX+3] – передать в AX содержимое ячейки памяти, имеющей эффективный адрес CX+3
Косвенная индексная адресация со смещением
Аналогично предыдущей, но возможно масштабирование смещения
MOV AX, PEREM[SI*2] - передать в AX содержимое ячейки памяти, расположенной на SI*2 байт дальше (или на SI слов дальше), чем PEREM
Косвенная базовая индексная адресация
MOV AX, [SI][DX] – поместить в AX содержимое ячейки памяти, эффективный адрес которой равен SI+DX
Косвенная базовая индексная адресация со смещением
MOV PEREM[SI+5][DX] - передать в AX содержимое ячейки памяти, расположенной на SI+5+DX байт дальше, чем PEREM