
- •Л Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович абораторная работа №1 Начало работы на языке ассемблера
- •Теоретическая часть
- •Задание
- •Контрольные вопросы.
- •Лабораторная работа №2 д Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович ирективы языка ассемблера
- •Теоретическая часть
- •Задания (2 часа)
- •Контрольные вопросы
- •Лабораторная работа №3 к Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович оманды пересылки данных. Стек.
- •Теоретическая часть
- •Команды пересылки данных
- •Задание
- •Контрольные вопросы:
- •Лабораторная работа №4 а Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович рифметические операции. Битовые команды.
- •Теоретическая часть
- •Битовые команды
- •Задание
- •Контрольные вопросы:
- •Теоретическая часть
- •Задание
- •1. Предварительная подготовка
- •2 Порядок выполнения работы на эвм
- •Контрольные вопросы:
- •С Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович троковые функции и массивы (4 часа).
- •Теоретическая часть Строковые инструкции
- •Инициализация массивов
- •Задание
- •Контрольные вопросы:
- •Лабораторная работа №7 п Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович роцедуры.
- •Теоретическая часть
- •Работа команд ret и retf
- •Задание
- •Программа №7.1
- •Контрольные вопросы
Задания (2 часа)
1. Создайте файл с именем Lab2.asm. (Программно этот код практически ни чем отличается от Lab1.asm, но будет хорошо, если вы дополните его комментариями)
.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 ;конец программы
2. Создайте исполняемый файл Lab2.EXE, выполнив ассемблирование и компоновку файла.
3. Пример создания программы в виде *.com файла
3.1. Войдите в директорию TASM, в ней создайте файл с именем Lab21.asm. Введите текст следующей программы (без комментариев).
; Пример оформления программы в виде com-файла
.MODEL SMALL
.CODE
org 100h
begin:
jmp start
Hello DB 'Hello!$'
start: LEA DX,Hello
mov ah,09h
int 21h
mov ah,4ch
mov al,00h
int 21h
END begin
3.2 Создайте исполняемый *.com файл Lab2.com, выполнив ассемблирование и компоновку файла Lab2.asm. При компоновки наберите TLINK/t Lab2
2 часа
4. Напишите отчет о директивах ассемблера
5. Продемонстрируйте работающие программы Lab1.exe, Lab2.com
6. Показать работа двух программ в Турбоотладчике
7. Напишите в отчете основные отличия в создании и структуре.com и .exe файлов.
Контрольные вопросы
Какую структуру имеет программа на языке ассемблера?
Какого вида предложения бывают в исходном коде на ассемблере?
Опишите назначения директив Assume и Model?
Модели памяти директива Model.
Расскажите разницу между директивами .Code, .Data и .Stack?
Какие директивы определения данных существуют, их отличия и применение?
Создание .com и .exe, их структурное отличие на примере сегментов памяти?
Раскройте механизм сегментации памяти процессора 8086?
Перечислите сегментные регистры процессора 8086, особенности их использования.
Лабораторная работа №3 к Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович оманды пересылки данных. Стек.
Цель работы:
изучение режимов адресации;
изучение правил адресации при использовании регистров;
дать понятие о директивах определения данных;
понятие о стеке;
Теоретическая часть
Во всех 16-битовых ЭВМ принимаются какие-либо меры для расширения адресного пространства памяти, т.к. 16-битовый адрес позволяет адресоваться только к 64 Кб. В изучаемой ПЭВМ память разбивается на сегменты размером до 64 Кб. По умолчанию каждый сегмент начинается с границы параграфа (фрагмента памяти размером в 16 б). Физический адрес в памяти складывается из начального адреса сегмента и 16-битового смещения (исполнительного адреса, EA) в пределах сегмента. Для получения физического начального адреса (ФА) содержимое сегментного регистра (начальный номер параграфа) умножается на 16, т.е. дополняется справа четырьмя нулями:
ФА = ННП * 16 + смещение.
Если какой-либо элемент данных занимает несколько байтов, то его младший байт размещается по младшему адресу, который и считается адресом многобайтового элемента в целом.
Адресации обычно делят на 7 групп (способов адресации):
1) регистровая; 2) непосредственная; 3) прямая; 4) косвенная регистровая; 5) адресация по базе (базовая); 6) прямая с индексированием; 7) адресация по базе с индексированием (базовая индексная). Нетрудно заметить, что такое разделение есть не что иное, как попытка проклассифицировать режимы адресации по общепринятым способам адресации, причем не бесспорная, т.к., например, базовая отличается от индексной только используемыми регистрами.
Способы адресации приведены в табл.1.
Таблица 1
N п/п |
Адресация |
Основной формат оператора |
Сегмент По Умолчанию |
Примечание |
1 |
Регистровая |
Регистр 1 б или 2 б |
|
Наиболее быстрое выполнение |
2 |
Непосредственная |
Данное 1 б или 2 б |
|
Применяется в операциях с константами |
3 |
Прямая |
Исполнительный адрес 2б |
DS |
Применяется для однократного обращения к памяти |
4 |
Косвенная регистровая |
[BX] [ВР] [SI] [DI] |
DS SS DS DS |
Применяется при работе с одномерными массивами |
5 |
Базовая |
[BX] + сдвиг [BP] + сдвиг |
DS SS |
Применяется для обращения к элементу структуры, нач. адрес которой в ВР или ВХ |
6 |
Прямая с индексированием |
Сдвиг[SI] Сдвиг [DI] |
DS DS |
Применяется при работе c одномерными массивами, сдвиг - нач. адрес массива |
7 |
По базе с индексированием |
Сдв.[BX][SI] Сдв.[BX][DI] Сдв.[BP][SI] Сдв.[BP][DI] |
DS DS SS SS |
Применяется при работе с двумерными массивами |