
- •Федеральное агентство связи
- •Регистры общего назначения.
- •Сегментные регистры.
- •Регистры состояния и управления.
- •Формат команд.
- •Создание программы на ассемблере.
- •Отладчик Turbo Debugger.
- •Структура программы на ассемблере.
- •Методические указания по выполнению лабораторных работ.
- •Лабораторная работа №1 Изучение пакета tasm и организация ввода данных с клавиатуры.
- •Лабораторная работа №2 Система адресования и последовательность выполнения основных команд пересылки.
- •Лабораторная работа №3 Программирование арифметических операций.
- •Лабораторная работа №4 Программирование логических операций
- •Лабораторная работа №5 Запись и выполнение программ пересылки данных между информационными массивами.
- •Лабораторная работа №6 Программирование ветвящихся вычислительных процессов.
- •Лабораторная работа №7 Программирование итеративных циклических вычислительных процессов.
- •Лабораторная работа №8 Программирование и контроль регулярных циклических вычислительных процессов.
- •Лабораторная работа №9 Программа и стек.
- •Лабораторная работа № 10 Программирование вычислительных процессов с использованием стандартных подпрограмм.
Лабораторная работа № 10 Программирование вычислительных процессов с использованием стандартных подпрограмм.
Цель работы.
Исследование основных принципов организации прикладных программ с использованием стандартных подпрограмм.
Задание.
2.1. Предварительная часть.
2.1.1. Изучить содержание, форму записи и последовательность выполнения команд call, ret по [1,2].
2.1.2. Разработать детальную схему алгоритма вычисления функции f=x+10*y+100*z. Подобные вычисления производятся в процессе образования кода номера накопителя при вводе его с цифровой клавиатуры. Так как число накопителей в сортировочной машине не превышает 65536 = 216, то для вычисления слагаемых 10*у и 100*z=z*10*10 может быть использована стандартная подпрограмма "MULT10", разработанная при выполнении лабораторной работы №9.
Числа х, у, z размешаются в переменных х, у, z, а результат вычислений в переменной f. Значения х, y, z даны в таблице 9.
2.1.3. Разработать программу вычисления функции f на языке ассемблер. При этом необходимо учитывать, что подпрограмму “MULT10” надо оформить как процедуру. Описание подпрограммы в виде процедуры выглядит так:
<имя процедуры> proc
<тело процедуры>
<имя процедуры> endp
<имя процедуры> - имя которое присваивается процедуре. В нашем случае - MULT10.
<тело процедуры> - код программы составленной в лабораторной работе №9 с необходимыми корректировками.
Разместить подпрограмму MULT10 в сегменте кода согласно таблице 9, учитывая, что сама по себе подпрограмма не должна выполнятся, а может выполнятся только при обращении к ней. Необходимо также предусмотреть возврат из процедуры с помощью команды ret.
Таблица 9
Номер бригады |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
X |
1FA16 |
1BB416 |
475216 |
9AC416 |
87BC16 |
ABC16 |
F1516 |
F2A16 |
333316 |
Y |
6416 |
AD16 |
BA16 |
17216 |
1CB16 |
41F16 |
A3416 |
1A316 |
99B16 |
Z |
4516 |
3416 |
6416 |
A516 |
F216 |
BC16 |
CC16 |
DA16 |
7716 |
Расположение процедуры в программе |
C |
K |
H |
C |
K |
H |
C |
K |
H |
В таблице 9 использованы сокращения: С – середина, К – конец, Н – начало.
Экспериментальная часть.