- •Московский авиационный институт
- •(Государственный технический университет)
- •“ Язык ассемблера ibm pc ”
- •Лабораторные работы
- •Указания по работе с турбо-ассемблером
- •Лабораторная работа № 1
- •Команды сложения и вычитания
- •Дополнительные команды
- •Команды умножения и деления
- •Команды преобразования длины
- •Задание
- •Лабораторная работа № 2
- •Близкие и далекие переходы.
- •Задание
- •Лабораторная работа № 3
- •Структура программы на языке Ассемблера
- •Описание процедур
- •Вызов процедур
- •Задание
- •Лабораторная работа № 4 Задание
Описание процедур
{имя проц.} PROC {параметр}
{тело проц.}
[RET]
{имя проц.} ENDP
где {имя проц.} – должно повторяться дважды и используется для обращения к процедуре;
{параметр} может принимать одно из двух значений - <NEAR> (по умолчанию) или <FAR>.
К близкой (внутренней) процедуре можно обращаться только из того сегмента команд, где она описана. К дальней (внешней) процедуре можно обращаться из любых сегментов команд программы, в том числе и из того, где она описана.
Имена и метки, описанные в процедуре, не локализуются внутри нее, поэтому должны быть уникальными в программе.
Хотя в АЯ можно описать одну процедуру внутри другой, никакой выгоды это не дает и обычно не используется.
Вызов процедур
Если из процедуры возможен возврат в DOS, то ее можно вызвать командой перехода на имя процедуры
JMP {имя проц.}
Если нужен возврат в вызывающую программу, то проще всего использовать команду обращения
CALL {имя проц.}
Тогда в теле процедуры должна быть команда возврата
RET
Задание
Ознакомиться с образцами программ, приведенными в файлах task1_1.asm, task1_2.asm, task1_3.asm, task1_4.asm.
Ознакомиться с образцами программ, приведенными в файлах task2_1.asm, task5_m.asm, task6_1.asm.
Разработать ассемблер-программу реализации линейного процесса в соответствии с вариантом задания.
Результат выводить в 16-ричной системе счисления.
Вариант |
Расчетная формула |
Аргументы, Байт |
|||
a |
b |
c |
d |
||
1 |
|
23 |
-30 |
42 |
21 |
2 |
|
29 |
18 |
31 |
-14 |
3 |
|
-16 |
39 |
14 |
28 |
4 |
|
43 |
-6 |
-20 |
47 |
5 |
|
25 |
71 |
56 |
-35 |
6 |
|
66 |
51 |
-28 |
12 |
7 |
|
9 |
18 |
-24 |
44 |
8 |
|
30 |
-14 |
28 |
36 |
9 |
|
23 |
-30 |
42 |
21 |
10 |
|
19 |
18 |
31 |
-14 |
11 |
|
-16 |
39 |
14 |
12 |
12 |
|
43 |
-6 |
10 |
-17 |
13 |
|
15 |
17 |
26 |
-25 |
14 |
|
46 |
51 |
-28 |
12 |
Лабораторная работа № 4 Задание
1. Разработать программу в Турбо-ассемблере для реализации циклического процесса в соответствии с вариантом задания, выполненным на занятии 2.