LAB5_SP2010 (Готовая лаба №5)
Описание файла
Файл "LAB5_SP2010" внутри архива находится в следующих папках: Готовая лаба №5, [СП] ЛР 5. Документ из архива "Готовая лаба №5", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "системное программирование" в общих файлах.
Онлайн просмотр документа "LAB5_SP2010"
Текст из документа "LAB5_SP2010"
2
2010 год 2 курс 4-й семестр Большаков С.А.Лабораторная работа № 5. (Ввод строки и вывод в машинном формате) - 2010
Задание на ЛР: Разработать и отладить программу на языке Ассемблер для ввода строки символов с клавиатуры (последовательности символов) и вывода их в шестнадцатеричном представлении (через пробел).
Обязательные требования к ЛР: Признак завершения ввода строки – это символ "$". Между введенной строкой символов и их шестнадцатеричным представлением должен располагаться знак равенства ( “=”). Например: "ABC=41 42 43". Требования к процедурам и их именованию совпадают с требованием предыдущих ЛР. Программа должна работать в циклическом режиме (используется команда LOOP): после ввода одной строки запрашивается следующая. Завершение цикла ввода строк выполняется по введенному символу “*”, введенному в первой позиции строки. Для ввода/вывода строки и ее шестнадцатеричного представления разрабатываются дополнительные процедуры. Организовать очистку экрана до начала работы программы, а также после ее завершения (С помощью специальной процедуры - CLRSCR).
Примечание 1: Процедура HEX для перевода символа может быть использована из 4-й ЛР.
Примечание 2: Для очистки экрана использовать отдельную процедуру – CLRSCR и использовать прерывание BIOS 010h.
Примечание 3: В программе должно быть построено три цикла: цикл ввода символов, цикл вывода их шестнадцатеричного представления и цикл ввода строк. При организации вложенных циклов необходимо сохранять регистр CX.
Примечание 4: Проверка завершения внешнего цикла может быть выполнена командой CMP (раздел № 15.4 пособия) и командами условного перехода, например JE <метка>.
Дополнительные требования к ЛР: Предусмотреть дополнительно, кроме строк, ввод и перевод чисел, которые начинаются с цифры (0-9) и могут быть заданы в десятичном или шестнадцатеричном формате (шестнадцатеричные должны завершаться символом "h/H", десятичные числа без символов). Числа должны быть переведены в машинное представление. По завершению программы на отдельной строке должно выдаться сообщение об ее успешном завершении программы и данные студента: ФИО, группа и номер варианта студента.
Примечание 5: Считать, что размер вводимых данных ограничивается двойным словом (DD – 4 байта в машинном виде).
Контрольные вопросы по 5-й ЛР:
-
"Для чего нужна данная команда?". Для строки листинга указанной преподавателем?
-
Какие разновидности команды XLAT Вы знаете, и чем они отличаются?
-
Как организовать ожидание ввода символа в Ассемблере?
-
Какие системы счисления Вы знаете?
-
В чем отличие символьного и шестнадцатеричного представления в ОП?
-
Можно ли в процедуру Ассемблера передать параметры при ее вызове и как?
-
Что такое стек и для чего он нужен?
-
В каких командах Ассемблера неявно используется стек?
-
Поясните по листингу работу команды CMP?
-
Поясните по листингу работу команды условного перехода - JE/JNE?
-
Какие регистры неявно используются в команде LOOP?
-
Поясните по листингу работу команды LOOP?
-
Поясните по листингу шестнадцатеричное представление указанной команды (в левой части листинга Ассемблера программы)?
-
Как по листингу определить размер программы в оперативной памяти (ОП)?
-
Как по листингу определить длину фрагмента программы, указанного преподавателем?
-
Расшифруйте по листингу формат команды, указанной преподавателем?
-
Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером?
-
Как можно в программе ассемблера организовать ветвление?
-
Поясните команды условного и безусловного перехода в программе.
-
Какие команды сравнения Вы знаете?
-
Какие команды условного перехода Вы знаете?