
- •Л Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович абораторная работа №1 Начало работы на языке ассемблера
- •Теоретическая часть
- •Задание
- •Контрольные вопросы.
- •Лабораторная работа №2 д Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович ирективы языка ассемблера
- •Теоретическая часть
- •Задания (2 часа)
- •Контрольные вопросы
- •Лабораторная работа №3 к Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович оманды пересылки данных. Стек.
- •Теоретическая часть
- •Команды пересылки данных
- •Задание
- •Контрольные вопросы:
- •Лабораторная работа №4 а Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович рифметические операции. Битовые команды.
- •Теоретическая часть
- •Битовые команды
- •Задание
- •Контрольные вопросы:
- •Теоретическая часть
- •Задание
- •1. Предварительная подготовка
- •2 Порядок выполнения работы на эвм
- •Контрольные вопросы:
- •С Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович троковые функции и массивы (4 часа).
- •Теоретическая часть Строковые инструкции
- •Инициализация массивов
- •Задание
- •Контрольные вопросы:
- •Лабораторная работа №7 п Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович роцедуры.
- •Теоретическая часть
- •Работа команд ret и retf
- •Задание
- •Программа №7.1
- •Контрольные вопросы
Контрольные вопросы:
Можно ли заменить команду STOSB командой STOSW?
Какую операцию производят строковые инструкции автоматически?
При применении строковых операций, можно ли в качестве регистра смешения использовать другие регистры, отличные от SI и DI?
Что служит результатом сравнения двух строк при помощи команды CMPS?
Используя какую строковую инструкцию можно присвоить значение элементам массива?
Лабораторная работа №7 п Составитель: преп.Каф.Информатики Аркабаев Нуркасым Кылычбекович роцедуры.
Цель работы:
ознакомить с основами работы с процедурами;
объяснить виды адресаций процедур (NEAR, FAR);
показать использование локальных переменных;
Теоретическая часть
В виде процедур обычно оформляются многократно повторяющиеся фрагменты программ для ускорения разработки и сокращения объема программ. Процедуры могут быть внутренними (находятся в том же исходном модуле, что и вызывающая программа, транслируются совместно) и внешними (находятся в отдельных исходных модулях, транслируются отдельно). Последние чаще применяют в программах, предназначенных для преобразования в EXE-файлы, а также в случаях, когда процедуры достаточно велики по объему, сложны для отладки или могут быть использованы в других программах.
Ассемблер позволяет вам описывать процедуры несколькими способами. В данной работе описываются процедуры NEAR и FAR, объявление языка процедур, использование в процедурах аргументов и переменных, сохранение регистров, вложенные процедуры и описание процедур методов для объектов.
Синтаксис определения процедур
Для описания процедур вы можете использовать директиву PROC. Директива имеет следующий синтаксис:
PROC имя [расстояние]
[ARG список_аргументов] [RETURN список_элементов];
[LOCAL список_аргументов]
[USES список_элементов]
.
.
.
ENDP [имя]
Ассемблер также воспринимает для определения процедур синтаксис MASM.
Описание процедур NEAR или FAR
Процедуры NEAR вызываются с помощью вызова ближнего типа и содержат ближний возврат управления. Вы должны вызывать их только в том же сегменте, в котором они определены. Вызов ближнего типа заносит адрес возврата в стек и устанавливает указатель инструктор (IP) в значение смешения процедуры. Поскольку сегмент кода (CS) не изменяется, процедура должна находиться в том же сегменте, что и вызывающая программа. Когда процессор обнаруживает возврат ближнего типа, он извлекает из стека адрес возврата и снова устанавливает в него IP. Сегмент кода не изменяется.
Процедура FAR вызывается с помощью вызова дальнего типа и содержит возврат дальнего типа. Процедуры FAR вы можете вызывать вне сегмента, в котором они определяются. Вызов FAR заносит в стек адрес в виде сегмента и смещения, а затем устанавливает CS:IP в адрес процедуры. Когда процессор обнаруживает возврат дальнего типа, он извлекает из стека сегмент и смещение адреса возврата и устанавливает в него CS:IP.
В процедурах NEAR и FAR используется одна и та же инструкция RET. Ассемблер использует расстояние процедуры для определения того, требуется возврат ближнего или дальнего типа. Аналогично, Ассемблер использует расстояние процедуры для определения того, требуется для ссылки на процедуру возврат ближнего или дальнего типа.
..
CALL test1 ; это дальний вызов
CALL test2 ; это ближний вызов
...