Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемwww.mts-sut.ru
1 Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 1 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов к.т.н., доцент Красов Андрей Владимирович директор УИЦ ИТТ, доцент кафедры ИБТС Куратор специальности «Защищенные системы связи» Автор курса
2 Введение Архитектура компьютера включает в себя: структурную схему компьютера; структурную схему компьютера; набор системных регистров; набор системных регистров; способ организации оперативной памяти; способ организации оперативной памяти; организацию и разрядность интерфейсов компьютера; организацию и разрядность интерфейсов компьютера; способы представления и форматы данных компьютера; способы представления и форматы данных компьютера; набор и форматы машинных команд; набор и форматы машинных команд; систему обработки прерываний. систему обработки прерываний. Пятиступенчатый конвейер имеет следующие этапы: выборка команды из оперативной памяти; выборка команды из оперативной памяти; декодирование команды; декодирование команды; вычисление адреса операндов; вычисление адреса операндов; выполнение операции в арифметико-логическом устройством (АЛУ); выполнение операции в арифметико-логическом устройством (АЛУ); запись результата. запись результата. Суперскалярная архитектура имеет следующие особенности: раздельное кэширование кода и данных; раздельное кэширование кода и данных; предсказание правильного адреса перехода (сохранение 256 последних переходов, вероятность до 80%); предсказание правильного адреса перехода (сохранение 256 последних переходов, вероятность до 80%); усовершенствованный блок вычислений с плавающий точкой. усовершенствованный блок вычислений с плавающий точкой.
3 Набор регистров Программная модель микропроцессора содержит 16 пользовательских и16 системных регистра. Пользовательские регистры: EAX Ax AhAl EDX Dx DhDl 3115 ECX Cx ChCl 3115 EBX Bx BhBl 3115 EBP Bp 3115 ESI Si 3115 EDI Di 3115 ESP Bp 3115
4 Сегментные регистры: Cs Ss 15 Ds 15 Es 15 Fs 15 Gs 15 Регистры флагов и указателя команд: EFLAGS Flags EIP Ip 15 Для совместимости с младшими моделями процессоров программисту для самостоятельной работы предоставляется только младшие 16-и и 8-и битные части этих регистров. Таблица 1.1. Набор регистров
5 Таблица 1.2. Назначение регистров общего назначения eax/ax/ah/al Аккумулятор – применяется для хранения промежуточных данных. ebx/bx/bh/bl Базовый регистр – применяется для хранения базового адреса объекта в памяти. ecx/cx/ch/cl Регистр-счетчик – применяется в командах организации циклов. edx/dx/dh/dl Регистр данных – применяется для хранения промежуточных данных. Регистры для поддержки цепочных операций esi/si Индекс источника – содержит текущий адрес элемента в цепочке-источнике. edi/di Индекс приемника – содержит текущий адрес в цепочке-приемнике. Регистры для работы со стеком esp/sp Указатель стека – содержит указатель на вершину стека. ebp/bp Указатель базы кадра стека – предназначен для организации доступа к данным из стека. Сегментные регистры: Процессор поддерживает следующие типы сегментов: 1. Сегмент кода. Содержит команды программ. Адрес сегмента содержится в регистре cs. 2. Сегмент данных. Содержит данные программы. Адрес сегмента содержится в регистре ds. 3. Сегмент стека. В данном сегменте размещается стек. Адрес сегмента содержится в регистре ss. 4. Дополнительный сегмент данных (адреса дополнительных сегментов в регистрах es, gs, fs).
6 Регистры состояния: В процессор включены несколько регистров, которые постоянно содержат информацию о результатах выполнения команд и состояния процессора. К этим регистрам относятся: регистр флагов eflags/flags регистр указателя команды eip/ip. Все флаги регистра флагов можно разделить на три группы: 8 флагов состояния. Данные флаги отражают результат исполнения команд процессора. 1 флаг управления. Данный флаг используется цепочными командами. Значение флага, обозначаемого как ds, определяет направление поэлементной обработки. Если df=0 обработка производится в прямом порядке, а если df=1 то в обратном. Работа с данным флагом возможна с помощью специальных команд (cld и std). 5 системных флагов. Системные флаги предназначены для управлением вводом/выводом, системой прерываний, режимом отладки, переключением задач. Без особой нужды модифицировать значение этих флагов нецелесообразно. Рисунок 1.3
7 Организация памяти Процессор поддерживает несколько режимов работы с оперативной памятью: реальный режим – режим, в котором работал процессор i8086, сохраняемый для преемственности с ранними моделями; реальный режим – режим, в котором работал процессор i8086, сохраняемый для преемственности с ранними моделями; защищенный режим – использование всех возможностей процессора; защищенный режим – использование всех возможностей процессора; режим виртуального 8086 – предназначен для работы программ созданных с использованием реального режима адресации памяти, в защищенном режиме. режим виртуального 8086 – предназначен для работы программ созданных с использованием реального режима адресации памяти, в защищенном режиме. Сегментированная модель памяти Сегментация – механизм адресации, обеспечивающий существование нескольких независимых адресных пространств.
8 Используются следующие обозначения: Физический адрес и линейный адрес – адрес, выдаваемый на шину адреса процессора. В реальном режиме они одинаковы, при страничном режиме они отличаются.Физический адрес и линейный адрес – адрес, выдаваемый на шину адреса процессора. В реальном режиме они одинаковы, при страничном режиме они отличаются. Эффективный адрес – значение адреса относительно текущего сегмента.Эффективный адрес – значение адреса относительно текущего сегмента. В реальном режиме памяти механизм адресации физической памяти имеет следующие параметры: Диапазон изменения физического адреса от 0 до 1 Мбайт (шина адреса в i8086 имела 20 линий).Диапазон изменения физического адреса от 0 до 1 Мбайт (шина адреса в i8086 имела 20 линий). Размер сегмента - 64Кбайт. Эта величина определяется 16-и разрядной архитектурой.Размер сегмента - 64Кбайт. Эта величина определяется 16-и разрядной архитектурой. Сегментная составляющая адреса. В сегментных регистрах хранится только 16 разрядов адреса сегмента, для получения сегментной составляющий адреса, имеющий 20 разрядов, необходимо сдвинуть адрес из сегментного регистра на 4 разряда.Сегментная составляющая адреса. В сегментных регистрах хранится только 16 разрядов адреса сегмента, для получения сегментной составляющий адреса, имеющий 20 разрядов, необходимо сдвинуть адрес из сегментного регистра на 4 разряда. Недостатки сегментной организации памяти: максимальный размер сегмента 64 Кбайт;максимальный размер сегмента 64 Кбайт; перекрытие сегментов.перекрытие сегментов. Рисунок 1.4
9 Типы данных На рис. 1.5, показаны аппаратно поддерживаемые процессором типы данных На рис. 1.5, показаны аппаратно поддерживаемые процессором типы данных. Байт СловоСтарший байт Младший байт Двойное словоСтаршее словоМладшее слово Учетверенное слово Старшее двойное словоМладшее двойное слово Рис.1.5. Типы данных процессора
10 На уровне команд процессор поддерживает логические типы данных, представленные на рис Целое без знака: Целое со знаком: Байтбайт Cслово слово Двойное слово Байтовая строка Битовое поле... До 4Гбайт Неупакованное десятичное число Упакованное десятичное число 0D... 0D0DDD DDDD Указатель ближнего типа Смещение Указатель дальнего типа СелекторСмещение Рисунок 1.6
11 Таблица 1.7. Числовые диапазоны целых типов Кол-во разрядов Диапазон значений Целое со знакомЦелое без знака Указатель на память. Указатель на память бывает двух типов: ближний тип – 32 разряда, отсчитываемый от начала сегмента; ближний тип – 32 разряда, отсчитываемый от начала сегмента; дальний тип – 48 (16 разрядов – адрес сегмента, 32 разряда – адрес смещения). дальний тип – 48 (16 разрядов – адрес сегмента, 32 разряда – адрес смещения). Цепочка. Цепочка представляет собой непрерывный набор байтов, слов, двойных слов. Максимальная длина цепочки составляет 4 Гбайта. Битовое поле. Битовое поле представляет собой непрерывную последовательность до 32 бит. Каждый бит последовательности может адресоваться отдельно. Неупакованный двоично-десятичный тип. Данный тип представляет собой двоичное представление десятичных чисел. Старшие разряды в этом случае всегда равны 0. Упакованный двоично-десятичный тип. Данный тип размещает две десятичные цифры в одном байте.
12 Формат Команд Машинная команда процессора имеет следующую структуру: поле префиксов; поле префиксов; поле кода операции; поле кода операции; поле операндов. поле операндов. Поле префиксов – элемент команды который модифицирует действие этой команды, например: замена сегмента, изменение размерности адреса, изменение размерности операнда, циклическое выполнение команды. Поле кода операции – числовой код команды. Поле операндов – определяет с какими ячейками работает команда и куда помещает результат. Поле операндов может содержать от 0 до 2-х операндов. Возможны следующие сочетания операндов в команде: регистр – регистр; регистр – регистр; регистр – память; регистр – память; память – регистр; память – регистр; значение – регистр; значение – регистр; значение – память. значение – память.
13 Текстовый редактор Трансляция программы tasm.exe Компоновка программы Tlink.exe Отладка программы Tdebug.exe Prim.asm Prim.mpo Prim.lst Prim.exe Prim.obj Построение программы на ассемблере На рис. 1.8, представлен порядок действий по компиляции построению исполнимого файла по ассемблерной программе. Рисунок 1.8 Иллюстрация построения программы на ассемблере
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.