SlideShare a Scribd company logo
1 of 13
LOGO
Директивы языка
ассемблера
Лекция № 19
31.05.13
Программа на ассемблере представляет собой
совокупность блоков памяти, называемых сегментами
памяти.
Программа может состоять из одного или нескольких
таких блоков-сегментов.
Каждый сегмент содержит совокупность
предложений языка, каждое из которых занимает
отдельную строку кода программы.
Предложения ассемблера бывают четырех типов:
• команды или инструкции, представляющие собой
символические аналоги машинных команд. В
процессе трансляции инструкции ассемблера
преобразуются в соответствующие команды
системы команд микропроцессора;
• макрокоманды — оформляемые определенным
образом предложения текста программы,
замещаемые во время трансляции другими
предложениями;
• директивы, являющиеся указанием транслятору
ассемблера на выполнение некоторых действий. У
директив нет аналогов в машинном представлении;
• строки комментариев, содержащие любые
символы, в том числе и буквы русского алфавита.
Комментарии игнорируются транслятором.
Упрощенные директивы сегментации
Программный модуль может иметь только
определенные типы сегментов, которые определяются
упрощенными директивами описания сегментов.
Для простых программ, содержащих по одному
сегменту кода, данных и стека, используют упрощенные
директивы сегментации MODEL.
Формат директи-
вы
Назначение
.CODE [имя] Начало или продолжение сегмента кода
.DATA Начало или продолжение сегмента иници-
ализированных данных.
.STACK [размер] Начало или продолжение сегмента стека
модуля. Параметр [размер] задает размер
стека
Обязательным параметром директивы MODEL
является модель памяти, которая определяет набор
сегментов и их размеры, способ связывания
сегментов и сегментных регистров.
Модель памяти имеет значения TINY, SMALL,
MEDIUM, COMPACT или LARGE.
Модель small выделяет по 64 Кбайт под сегменты
кода и данных и позволяет создавать программы
размером до 128 Кбайт.
Ее используют для большинства программ на
ассемблере. Сегменты могут пересекаться.
Директива MODEL SMALL автоматически связывает
сегменты с предопределенными именамипредопределенными именами (.code, .stack)
с сегментными регистрами CS и SS, явно связывать
нужно только сегмент данных .data с регистром DS.
Директивы определения данных позволяют
определить переменные в памяти различного размера:
DB - 1 байт
DW - 2 байта = 1 слово
DD - 4 байта = 1 двойное слово
DQ - 8 байт = 1 четвертное слово
DT - 10 байт
Первая программа
.Model Small ;Модель памяти ближнего типа
.Stack 100h ;Определяет стек размером 100h
.Data ;Начало сегмента данных
Hello DB 'Лабораторная работа №2 !$' ;Зарезервировали память
;для переменной HELLO
.Code ;Начало сегмента кода
Start:
mov ax,@DATA ;Формирование адреса сегмента
mov ds,ax ;данных
lea DX,Hello ;Установить в DX адрес переменной HELLO
mov ah,09h ;Функция DOS вывода строки
int 21h ;Вывод строки на экран
mov ax,4C00h ;Функция DOS завершения
int 21h ;программы
END start ;конец программы
КОМАНДЫ ПЕРЕСЫЛКИ (КОПИРОВАНИЯ)
Алгоритм: на место первого операнда пересылается
(копируется) значение второго: ор1:=ор2. Флаги не
меняются.
Допустимые комбинации операндов:Допустимые комбинации операндов:
Im – непосредственный операнд,
reg – регистр,
mem – память,
Размеры операндов должны быть одинаковы.
MOV op1, op2
ор1 ор2
Reg (кроме IP, CS) Im, reg, mem
Mem Im, reg
Запрещены пересылки:
1) из одной ячейки памяти в другую,
2) из одного сегментного регистра в другой,
3) непосредственного операнда в сегментный регистр
4) адреса в сегментный регистр
Обойти запреты можно, использовав промежуточный
регистр.
ПРИМЕРЫ
Скопировать слово из переменной var1 в var2 ( запрет 1):
MOV АХ, var1
MOV var2, AX
Переслать данные из регистра DS в ES ( запрет 2):
MOV АХ, DS
MOV ES, AX
Записать число 100 в сегментный регистр DS ( запрет 3):
MOV АХ, 100
MOV ES, AX ; ES:=100
039

More Related Content

What's hot

Ayan9r1 po(1)
Ayan9r1 po(1)Ayan9r1 po(1)
Ayan9r1 po(1)Ayan_R
 
системное администрирование
системное администрированиесистемное администрирование
системное администрированиеsplinter408
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.Igor Shkulipa
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системpianist2317
 
Равиль Губайдуллин - Annotation processing
Равиль Губайдуллин - Annotation processingРавиль Губайдуллин - Annotation processing
Равиль Губайдуллин - Annotation processingProvectus
 
подпрограммы в языке программирования паскаль
подпрограммы в языке программирования паскальподпрограммы в языке программирования паскаль
подпрограммы в языке программирования паскальArtem German
 
ИРБИС: Редактирование конвертора Rusm-Irbis
ИРБИС: Редактирование конвертора Rusm-IrbisИРБИС: Редактирование конвертора Rusm-Irbis
ИРБИС: Редактирование конвертора Rusm-IrbisSoldatova Oksana
 
О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"Yandex
 

What's hot (10)

Ayan9r1 po(1)
Ayan9r1 po(1)Ayan9r1 po(1)
Ayan9r1 po(1)
 
системное администрирование
системное администрированиесистемное администрирование
системное администрирование
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и систем
 
Равиль Губайдуллин - Annotation processing
Равиль Губайдуллин - Annotation processingРавиль Губайдуллин - Annotation processing
Равиль Губайдуллин - Annotation processing
 
подпрограммы в языке программирования паскаль
подпрограммы в языке программирования паскальподпрограммы в языке программирования паскаль
подпрограммы в языке программирования паскаль
 
Trofimov stfe
Trofimov stfeTrofimov stfe
Trofimov stfe
 
ИРБИС: Редактирование конвертора Rusm-Irbis
ИРБИС: Редактирование конвертора Rusm-IrbisИРБИС: Редактирование конвертора Rusm-Irbis
ИРБИС: Редактирование конвертора Rusm-Irbis
 
О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"О.В.Сухорослов "Паралленльные вычисления"
О.В.Сухорослов "Паралленльные вычисления"
 
X text
X textX text
X text
 

Viewers also liked

The 4 Things You Need To Know Before Migrating Your Business To The Cloud
The 4 Things You Need To Know Before Migrating Your Business To The CloudThe 4 Things You Need To Know Before Migrating Your Business To The Cloud
The 4 Things You Need To Know Before Migrating Your Business To The CloudBright Technology
 
Ghid violenta in familie
Ghid violenta in familieGhid violenta in familie
Ghid violenta in familietachita2007
 
39
3939
39JIuc
 
57
5757
57JIuc
 
37
3737
37JIuc
 
лекция 18
лекция 18лекция 18
лекция 18JIuc
 
03
0303
03JIuc
 
Mudra pt elimin.negativitatii
Mudra pt elimin.negativitatiiMudra pt elimin.negativitatii
Mudra pt elimin.negativitatiitachita2007
 
The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...
The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...
The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...Silpakorn University
 

Viewers also liked (13)

Merit Award - ESSENCE Bike by Paulo Oliveira - 14th IBDC
Merit Award - ESSENCE Bike by Paulo Oliveira - 14th IBDCMerit Award - ESSENCE Bike by Paulo Oliveira - 14th IBDC
Merit Award - ESSENCE Bike by Paulo Oliveira - 14th IBDC
 
The 4 Things You Need To Know Before Migrating Your Business To The Cloud
The 4 Things You Need To Know Before Migrating Your Business To The CloudThe 4 Things You Need To Know Before Migrating Your Business To The Cloud
The 4 Things You Need To Know Before Migrating Your Business To The Cloud
 
Blank 12
Blank 12Blank 12
Blank 12
 
Ghid violenta in familie
Ghid violenta in familieGhid violenta in familie
Ghid violenta in familie
 
39
3939
39
 
57
5757
57
 
37
3737
37
 
5
55
5
 
лекция 18
лекция 18лекция 18
лекция 18
 
03
0303
03
 
Mudra pt elimin.negativitatii
Mudra pt elimin.negativitatiiMudra pt elimin.negativitatii
Mudra pt elimin.negativitatii
 
8
88
8
 
The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...
The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...
The Four Knowledges of Sustainable Management: A Developing Tool to Allow Act...
 

Similar to 039

НуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptНуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptdinarium2016
 
027
027027
027JIuc
 
основы програмирования Pascal
основы програмирования Pascalосновы програмирования Pascal
основы програмирования Pascalliza2209
 
023
023023
023JIuc
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingTatiana Volkova
 
024
024024
024JIuc
 
system software programming - assembler programming.pp
system software programming - assembler programming.ppsystem software programming - assembler programming.pp
system software programming - assembler programming.ppImpreSs4
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Alex Tutubalin
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2Technopark
 
Scripting languages
Scripting languagesScripting languages
Scripting languagesLev Panov
 
Vba программы
Vba программыVba программы
Vba программыLidiKashka
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
эволюция языков программирования
эволюция языков программированияэволюция языков программирования
эволюция языков программированияAndrey Radionov
 
Доклад на Highload-2012
Доклад на Highload-2012Доклад на Highload-2012
Доклад на Highload-2012Alex Tutubalin
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 

Similar to 039 (20)

НуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptНуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.ppt
 
027
027027
027
 
основы програмирования Pascal
основы програмирования Pascalосновы програмирования Pascal
основы програмирования Pascal
 
023
023023
023
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в Processing
 
Turbo pascal. toqrul
Turbo pascal. toqrulTurbo pascal. toqrul
Turbo pascal. toqrul
 
024
024024
024
 
system software programming - assembler programming.pp
system software programming - assembler programming.ppsystem software programming - assembler programming.pp
system software programming - assembler programming.pp
 
Deep storm presentation
Deep storm presentationDeep storm presentation
Deep storm presentation
 
Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12Доклад в Mail.ru 01.11.12
Доклад в Mail.ru 01.11.12
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
SAP hands on lab_ru
SAP hands on lab_ruSAP hands on lab_ru
SAP hands on lab_ru
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Vba программы
Vba программыVba программы
Vba программы
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
эволюция языков программирования
эволюция языков программированияэволюция языков программирования
эволюция языков программирования
 
Net framework
Net frameworkNet framework
Net framework
 
Руководство для TR4W
Руководство для TR4WРуководство для TR4W
Руководство для TR4W
 
Доклад на Highload-2012
Доклад на Highload-2012Доклад на Highload-2012
Доклад на Highload-2012
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 

More from JIuc

выступление на совет директоров
выступление на совет директороввыступление на совет директоров
выступление на совет директоровJIuc
 
тест по теме системы счисления
тест по теме системы счислениятест по теме системы счисления
тест по теме системы счисленияJIuc
 
тест по теме компьютерные коммуникации
тест по теме компьютерные коммуникациитест по теме компьютерные коммуникации
тест по теме компьютерные коммуникацииJIuc
 
тест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвмтест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвмJIuc
 
тест по теме устройство компьютера (20 вопросов)
тест по теме  устройство компьютера (20 вопросов)тест по теме  устройство компьютера (20 вопросов)
тест по теме устройство компьютера (20 вопросов)JIuc
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениеJIuc
 
итоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвмитоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвмJIuc
 
тест по теме основные устройства компьютера
тест по теме основные устройства компьютератест по теме основные устройства компьютера
тест по теме основные устройства компьютераJIuc
 
тесты сортировка в бд Excel
тесты сортировка в бд Excelтесты сортировка в бд Excel
тесты сортировка в бд ExcelJIuc
 
тест создание и модифиация структуры бд
тест создание и модифиация структуры бдтест создание и модифиация структуры бд
тест создание и модифиация структуры бдJIuc
 
тест система управления базами данных
тест система управления базами данныхтест система управления базами данных
тест система управления базами данныхJIuc
 
тест работа с макросами и внешними данными
тест работа с макросами и внешними даннымитест работа с макросами и внешними данными
тест работа с макросами и внешними даннымиJIuc
 
тест по Sql
тест по Sqlтест по Sql
тест по SqlJIuc
 
тест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрациятест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрацияJIuc
 
тест запросы
тест запросытест запросы
тест запросыJIuc
 
тест бд
тест бдтест бд
тест бдJIuc
 
тест база данных. основные функции
тест база данных. основные функциитест база данных. основные функции
тест база данных. основные функцииJIuc
 
тестирование по разделу архитектура эвм
тестирование по разделу архитектура эвмтестирование по разделу архитектура эвм
тестирование по разделу архитектура эвмJIuc
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуреJIuc
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуреJIuc
 

More from JIuc (20)

выступление на совет директоров
выступление на совет директороввыступление на совет директоров
выступление на совет директоров
 
тест по теме системы счисления
тест по теме системы счислениятест по теме системы счисления
тест по теме системы счисления
 
тест по теме компьютерные коммуникации
тест по теме компьютерные коммуникациитест по теме компьютерные коммуникации
тест по теме компьютерные коммуникации
 
тест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвмтест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвм
 
тест по теме устройство компьютера (20 вопросов)
тест по теме  устройство компьютера (20 вопросов)тест по теме  устройство компьютера (20 вопросов)
тест по теме устройство компьютера (20 вопросов)
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечение
 
итоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвмитоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвм
 
тест по теме основные устройства компьютера
тест по теме основные устройства компьютератест по теме основные устройства компьютера
тест по теме основные устройства компьютера
 
тесты сортировка в бд Excel
тесты сортировка в бд Excelтесты сортировка в бд Excel
тесты сортировка в бд Excel
 
тест создание и модифиация структуры бд
тест создание и модифиация структуры бдтест создание и модифиация структуры бд
тест создание и модифиация структуры бд
 
тест система управления базами данных
тест система управления базами данныхтест система управления базами данных
тест система управления базами данных
 
тест работа с макросами и внешними данными
тест работа с макросами и внешними даннымитест работа с макросами и внешними данными
тест работа с макросами и внешними данными
 
тест по Sql
тест по Sqlтест по Sql
тест по Sql
 
тест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрациятест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрация
 
тест запросы
тест запросытест запросы
тест запросы
 
тест бд
тест бдтест бд
тест бд
 
тест база данных. основные функции
тест база данных. основные функциитест база данных. основные функции
тест база данных. основные функции
 
тестирование по разделу архитектура эвм
тестирование по разделу архитектура эвмтестирование по разделу архитектура эвм
тестирование по разделу архитектура эвм
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуре
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуре
 

039

  • 2. Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами памяти. Программа может состоять из одного или нескольких таких блоков-сегментов. Каждый сегмент содержит совокупность предложений языка, каждое из которых занимает отдельную строку кода программы.
  • 3. Предложения ассемблера бывают четырех типов: • команды или инструкции, представляющие собой символические аналоги машинных команд. В процессе трансляции инструкции ассемблера преобразуются в соответствующие команды системы команд микропроцессора; • макрокоманды — оформляемые определенным образом предложения текста программы, замещаемые во время трансляции другими предложениями;
  • 4. • директивы, являющиеся указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении; • строки комментариев, содержащие любые символы, в том числе и буквы русского алфавита. Комментарии игнорируются транслятором.
  • 5. Упрощенные директивы сегментации Программный модуль может иметь только определенные типы сегментов, которые определяются упрощенными директивами описания сегментов. Для простых программ, содержащих по одному сегменту кода, данных и стека, используют упрощенные директивы сегментации MODEL. Формат директи- вы Назначение .CODE [имя] Начало или продолжение сегмента кода .DATA Начало или продолжение сегмента иници- ализированных данных. .STACK [размер] Начало или продолжение сегмента стека модуля. Параметр [размер] задает размер стека
  • 6. Обязательным параметром директивы MODEL является модель памяти, которая определяет набор сегментов и их размеры, способ связывания сегментов и сегментных регистров. Модель памяти имеет значения TINY, SMALL, MEDIUM, COMPACT или LARGE. Модель small выделяет по 64 Кбайт под сегменты кода и данных и позволяет создавать программы размером до 128 Кбайт. Ее используют для большинства программ на ассемблере. Сегменты могут пересекаться.
  • 7. Директива MODEL SMALL автоматически связывает сегменты с предопределенными именамипредопределенными именами (.code, .stack) с сегментными регистрами CS и SS, явно связывать нужно только сегмент данных .data с регистром DS.
  • 8. Директивы определения данных позволяют определить переменные в памяти различного размера: DB - 1 байт DW - 2 байта = 1 слово DD - 4 байта = 1 двойное слово DQ - 8 байт = 1 четвертное слово DT - 10 байт
  • 9. Первая программа .Model Small ;Модель памяти ближнего типа .Stack 100h ;Определяет стек размером 100h .Data ;Начало сегмента данных Hello DB 'Лабораторная работа №2 !$' ;Зарезервировали память ;для переменной HELLO .Code ;Начало сегмента кода Start: mov ax,@DATA ;Формирование адреса сегмента mov ds,ax ;данных lea DX,Hello ;Установить в DX адрес переменной HELLO mov ah,09h ;Функция DOS вывода строки int 21h ;Вывод строки на экран mov ax,4C00h ;Функция DOS завершения int 21h ;программы END start ;конец программы
  • 10. КОМАНДЫ ПЕРЕСЫЛКИ (КОПИРОВАНИЯ) Алгоритм: на место первого операнда пересылается (копируется) значение второго: ор1:=ор2. Флаги не меняются. Допустимые комбинации операндов:Допустимые комбинации операндов: Im – непосредственный операнд, reg – регистр, mem – память, Размеры операндов должны быть одинаковы. MOV op1, op2 ор1 ор2 Reg (кроме IP, CS) Im, reg, mem Mem Im, reg
  • 11. Запрещены пересылки: 1) из одной ячейки памяти в другую, 2) из одного сегментного регистра в другой, 3) непосредственного операнда в сегментный регистр 4) адреса в сегментный регистр Обойти запреты можно, использовав промежуточный регистр.
  • 12. ПРИМЕРЫ Скопировать слово из переменной var1 в var2 ( запрет 1): MOV АХ, var1 MOV var2, AX Переслать данные из регистра DS в ES ( запрет 2): MOV АХ, DS MOV ES, AX Записать число 100 в сегментный регистр DS ( запрет 3): MOV АХ, 100 MOV ES, AX ; ES:=100