- •Им.В.И.Ульянова (Ленина)» (сПбГэту)
- •По дисциплине
- •140400.62 – “Электроэнергетика и электротехника" Санкт-Петербург
- •Методические указания к проведению лабораторного практикума по дисциплине “Вычислительные машины системы и сети” автор доц. Каф. Вт а.А. Валов
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Задание
- •Задание
- •Задание
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Задание
- •Задание
Задание
Необходимо создать основной модуль 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. Ввод чисел, задаваемых в различных системах счисления.
Цель: изучение систем счисления и освоение средств операционной системы для осуществления ввода данных.
