Директивы сегментации. Упрощенные директивы сегментации. Лекция доцента кафедры ИВТ ГрГУ кандидата технических наук Ливак Е.Н.

Презентация:



Advertisements
Похожие презентации
Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 2 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
Advertisements

Определение констант для размещения их компилятором в составе инструкций языка Определение числовых констант: имя = значение PI= V_size = 5 M_size.
Язык ASSEMBLER Команды пересылки данных Лекция доцента кафедры ИВТ ГрГУ кандидата технических наук Ливак Е.Н.
Архитектура ЭВМ Практика 3. Линейные программы на языке ассемблера.
Программирование на языке низкого уровня Ассемблер.
Уровни организации ЭВМ. Машинный уровень Лекция 5.
Архитектура ЭВМ Практика 2. Основы ассемблера..
Введение в программирование на языке ассемблера. Формат инструкции на языке ассемблера Директива Команда Макрокоманда МеткаОперандыКомментарий.
Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 6 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
Управление памятью Управление физической памятью.
Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 7 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
Организация циклов в Ассемблере. Цикл – это многократно повторяющаяся последовательность операторов.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Познакомиться с основными понятиями языка Pascal 2.
- - Реальный режим работы (Real mode) – это режим в котором работал базовый 16-и разрядный МП i8086. Это однозадачный режим, который реализовывался операционной.
Адресация Адресация Уточним понятие "адресация". Адресация (по Э. Таненбауму) – процесс определения местоположения операндов команды МП (их адреса). Адрес.
Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 1 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 10 Типы адресации. Стеки. Процессоры. ОЗУ. профессор ГУ-ВШЭ, доктор технических наук Геннадий.
Модули, созданные программистом Любознательные юные программисты ещё не знают что их ожидает =)
EXE-вирусы для MS DOS Неверов А.В.. Форматы EXE-файлов Формат файлаОперационная система MZMS DOS NE (New Exe)Windows 3.x PE (Portable Executible) Windows.
Транксрипт:

Директивы сегментации. Упрощенные директивы сегментации. Лекция доцента кафедры ИВТ ГрГУ кандидата технических наук Ливак Е.Н.

Сегментные регистры Микропроцессор имеет 6 сегментных регистров, посредством которых может одновременно работать: –с одним сегментом кода; CS –с одним сегментом стека; SS –с одним сегментом данных; DS –с тремя дополнительными сегментами данных ES, FS, GS.

СЕГМЕНТЫ Физически сегмент представляет собой область памяти, занятую командами и (или) данными. Адреса сегментов хранятся в соответствующих сегментных регистрах.

Упрощенные директивы сегментации.CODE [имя] - Начало или продолжение сегмента кода.DATA - Начало или продолжение сегмента инициализированных данных. Также используется для определения данных типа near.STACK [размер] - Начало или продолжение сегмента стека модуля. Параметр [размер] задает размер стека.CONST - Начало или продолжение сегмента постоянных данных (констант) модуля.DATA? - Начало или продолжение сегмента неинициализированных данных. Также используется для определения данных типа near.FARDATA [имя] - Начало или продолжение сегмента инициализированных данных типа far.FARDATA? [имя] - Начало или продолжение сегмента неинициализированных данных типа far

Директива указания модели памяти MODEL Используется совместно с упрощенными директивами сегментации частично управляет размещением сегментов, т.е. связывает сегменты с сегментными регистрами

Директива указания модели памяти MODEL Упрощенный формат директивы MODEL MODEL [ ] [ др. параметры ] Примеры: model small model tiny model use 32 small model compact

Модели памяти MODEL [ ] [ др. параметры ] TINY - Используется для создания программ формата.com SMALL - Эту модель обычно используют для большинства программ на ассемблере MEDIUM - Код занимает несколько сегментов, по одному на каждый объединяемый программный модуль COMPACT - Код в одном сегменте LARGE - Код в нескольких сегментах, по одному на каждый объединяемый программный модуль

Модификаторы модели памяти MODEL [ ] [ др. параметры ] use16 - сегменты выбранной модели 16-битные use32 - сегменты выбранной модели 32-битные dos - программа будет работать в MS-DOS Пример: model use 16 small

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

Структура программы masm ;режим работы TASM: ideal или masm model small ;модель памяти.stack ;сегмент стека.data ;сегмент данных BEGIN :.code ;сегмент кода end BEGIN ;конец программы с точкой входа BEGIN

Начало программы с упрощенными директивами сегментации masm model small.data message db 'Введите данные $'.stack db 256 dup ('?').code main proc mov mov ds,ax ;далее текст программы

Стандартные директивы сегментации - директивы SEGMENT и ASSUME

Описание сегментов на языке Assembler Сегменты описываются с помощью директивы SEGMENT Синтаксическое описание сегмента представляет собой следующую конструкцию SEGMENT [параметры] ENDS

Описание сегментов на языке Assembler Параметры директивы SEGMENT SEGMENT [тип выравнивания] [ тип комбинирования] [класс сегмента] [ тип размера сегмента] У параметров много возможных значений.

Примеры использования стандартных директив Описание сегмента кода code segment begin: mov ax, data mov ds, ax code ends Описание сегмента данных data segment data ends

Описание сегментов на языке Assembler С помощью директивы ASSUME можно сообщить транслятору какой сегмент к какому сегментному регистру привязан. Формат директивы : ASSUME : Пример: assume cs: code, ds: data

Структура программы с тремя сегментами assume cs: code, ds: data сodesegment begin: mov ax, data mov ds, ax code ends data segment data ends Stk segment stack db 256 dup (?) Stk ends end begin Порядок описания сегментов не имеет значения В ОП сегменты попадут в том порядке, в каком описаны в программе

Стандартные и упрощенные директивы сегментации Стандартные и упрощенные директивы сегментации не исключают друг друга.

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

Используем упрощенные директивы сегментации