Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСиС_лаборАА.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
272 Кб
Скачать
☆

Задание

Необходимо создать основной модуль main программы, который после пуска программы осуществляет вывод на экран сообщения: “нажмите любую клавишу”, а затем вызывает call input процедуру, которая осуществляет ожидание нажатия клавиши. При нажатии клавиши процедура input вводит идентификатор нажатой клавиши и возвращает управление основному модулю main программы. В модуле main программы анализируется идентификатор нажатой клавиши. Если нажата клавиша, помеченная символом A, то модуль main программы осуществляет вызов процедуры output1, обеспечивающей печать сообщения “нажата клавиша A - взаимодействие завершено” и возвращающей управление основному модулю main программы, который завершает работу программы. Если идентификатор нажатой клавиши не соответствует символу A, то основной модуль main программы осуществляет вызов процедуры output2, которая осуществляет печать сообщения “нажмите клавишу A” и возвращает управление основному модулю main программы. Программа этого модуля в данном случае осуществляет безусловный переход (JMP) на существующую в программе команду CALL INPUT.

Разработка и отладка многомодульной программы выполняется поэтапно.

На первом этапе необходимо создать с помощью текстового редактора четыре программных модуля: MAIN, INPUT, OUTPUT1, OUTPUT2 и сохранить их в четырех соответствующих файлах с добавлением к именам так называемого расширения asm.

Возможные варианты программных модулей input, output1, output2 приводятся ниже.

TITLE INPUT TITLE OUTPUT1

PUBLIC INPUT PUBLIC OUTPUT1

.model small .model small

.stack 100h .stack 100h

.data .data

.code mes1 DB 10, 13, ‘Нажата клавиша A -

INPUT PROC взаимодействие завершено $’

mov ax,@data .code

mov ds,ax OUTPUT1 PROC

mov ah,1 mov ax,@data

int 21h mov ds,ax

ret mov ah,9

INPUT endp lea dx,mes1

End int 21h

ret

OUTPUT1 endp

end

TITLE OUTPUT2

PUBLIC OUTPUT2

.model small

.stack 100h

.data

mes2 DB 10, 13, ‘Нажмите клавишу A $’

.code

OUTPUT2 PROC

mov ax,@data

mov ds,ax

mov ah,9

lea dx,mes2

int 21h

ret

OUTPUT2 endp

end

На втором этапе для каждого исходного модуля необходимо построить объектный модуль. Для достижения этой цели необходимо четырежды задать и выполнить следующую командную строку, изменяя nameprog на соответствующее имя.

>TASM/Z/ZI/L nameprog.asm

На третьем этапе для построения исполняемого модуля с возможностью дальнейшей отладки создаваемой программы с помощью программы TD.EXE необходимо задать следующую командную строку.

>TLINK/I/M/L/S/V main.obj vvod.obj vivod.obj,name.exe,name.map

При разработке многомодульной программы командная строка может содержать четыре параметра, расположенных в фиксированных позициях командной строки. Параметры отделяются друг от друга запятыми.

В первой позиции командной строки располагаются последовательно, начиная с головного, имена объектных модулей. Перечисляемые имена предварительно созданных объектных модулей должны быть разделены пробелом. После последнего из перечисленных имен ставится запятая, если предполагается использовать остальные параметры. При использовании только одного первого параметра имя создаваемого исполняемого модуля соответствует имени головного модуля.

Второй параметр командной строки соответствует имени, выбранному для исполняемого модуля.

В третьей позиции располагается имя, выбранное для так называемой карты распределения памяти.

В четвертой позиции командной строки можно перечислить библиотеки, используемые в программе. В данной работе эта позиция не заполняется.

На четвертом этапе необходимо осуществить отладку созданной программы, используя программу TD.EXE.

После разработки и отладки рассмотренной выше многомодульной программы требуется модернизировать текст модулей созданной программы таким образом, чтобы обеспечить демонстрацию передачи параметров процедурам через стек. Модернизированную программу необходимо отладить и составить отчет о проделанной работе.

Лабораторная работа 7. Ввод чисел, задаваемых в различных системах счисления.

Цель: изучение систем счисления и освоение средств операционной системы для осуществления ввода данных.