Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемmf.grsu.by
1 Директивы сегментации. Упрощенные директивы сегментации. Лекция доцента кафедры ИВТ ГрГУ кандидата технических наук Ливак Е.Н.
2 Сегментные регистры Микропроцессор имеет 6 сегментных регистров, посредством которых может одновременно работать: –с одним сегментом кода; CS –с одним сегментом стека; SS –с одним сегментом данных; DS –с тремя дополнительными сегментами данных ES, FS, GS.
3 СЕГМЕНТЫ Физически сегмент представляет собой область памяти, занятую командами и (или) данными. Адреса сегментов хранятся в соответствующих сегментных регистрах.
4 Упрощенные директивы сегментации.CODE [имя] - Начало или продолжение сегмента кода.DATA - Начало или продолжение сегмента инициализированных данных. Также используется для определения данных типа near.STACK [размер] - Начало или продолжение сегмента стека модуля. Параметр [размер] задает размер стека.CONST - Начало или продолжение сегмента постоянных данных (констант) модуля.DATA? - Начало или продолжение сегмента неинициализированных данных. Также используется для определения данных типа near.FARDATA [имя] - Начало или продолжение сегмента инициализированных данных типа far.FARDATA? [имя] - Начало или продолжение сегмента неинициализированных данных типа far
5 Директива указания модели памяти MODEL Используется совместно с упрощенными директивами сегментации частично управляет размещением сегментов, т.е. связывает сегменты с сегментными регистрами
6 Директива указания модели памяти MODEL Упрощенный формат директивы MODEL MODEL [ ] [ др. параметры ] Примеры: model small model tiny model use 32 small model compact
7 Модели памяти MODEL [ ] [ др. параметры ] TINY - Используется для создания программ формата.com SMALL - Эту модель обычно используют для большинства программ на ассемблере MEDIUM - Код занимает несколько сегментов, по одному на каждый объединяемый программный модуль COMPACT - Код в одном сегменте LARGE - Код в нескольких сегментах, по одному на каждый объединяемый программный модуль
8 Модификаторы модели памяти MODEL [ ] [ др. параметры ] use16 - сегменты выбранной модели 16-битные use32 - сегменты выбранной модели 32-битные dos - программа будет работать в MS-DOS Пример: model use 16 small
9 Идентификаторы, создаваемые директивой MODEL При использовании директивы MODEL транслятор делает доступными несколько идентификаторов, чтобы получить информацию о тех или иных характеристиках данной модели Физический адрес сегмента Физический адрес сегмента данных типа Физический адрес сегмента данных типа Физический адрес сегмента неинициализированных данных типа Физический адрес сегмента неинициализированных данных типа Физический адрес сегмента стека
10 Структура программы masm ;режим работы TASM: ideal или masm model small ;модель памяти.stack ;сегмент стека.data ;сегмент данных BEGIN :.code ;сегмент кода end BEGIN ;конец программы с точкой входа BEGIN
11 Начало программы с упрощенными директивами сегментации masm model small.data message db 'Введите данные $'.stack db 256 dup ('?').code main proc mov mov ds,ax ;далее текст программы
12 Стандартные директивы сегментации - директивы SEGMENT и ASSUME
13 Описание сегментов на языке Assembler Сегменты описываются с помощью директивы SEGMENT Синтаксическое описание сегмента представляет собой следующую конструкцию SEGMENT [параметры] ENDS
14 Описание сегментов на языке Assembler Параметры директивы SEGMENT SEGMENT [тип выравнивания] [ тип комбинирования] [класс сегмента] [ тип размера сегмента] У параметров много возможных значений.
15 Примеры использования стандартных директив Описание сегмента кода code segment begin: mov ax, data mov ds, ax code ends Описание сегмента данных data segment data ends
16 Описание сегментов на языке Assembler С помощью директивы ASSUME можно сообщить транслятору какой сегмент к какому сегментному регистру привязан. Формат директивы : ASSUME : Пример: assume cs: code, ds: data
17 Структура программы с тремя сегментами 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 Порядок описания сегментов не имеет значения В ОП сегменты попадут в том порядке, в каком описаны в программе
18 Стандартные и упрощенные директивы сегментации Стандартные и упрощенные директивы сегментации не исключают друг друга.
19 Стандартные и упрощенные директивы сегментации Стандартные директивы используются, когда программист желает получить полный контроль над размещением сегментов в памяти и их комбинированием с сегментами других модулей. Упрощенные директивы целесообразно использовать - для простых программ - программ, предназначенных для связывания с программными модулями, написанными на языках высокого уровня.
20 Используем упрощенные директивы сегментации
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.