Лабораторная работа №2
Цель работы
В процессе выполнения работы решается практически важная задача вывода чисел на экран и их ввода с клавиатуры. Данная задача решается в следующей последовательности. Вопервых, рассматривается задача вывода на экран шестнадцатеричных чисел. Во-вторых, рассматривается ввод шестнадцатеричных чисел с клавиатуры. В ходе работы производится знакомство с очень важными понятиями флагов состояния, стека и процедуры. Изучаются инструкции для работы с этими объектами, а также инструкции сдвига, цикла, условных переходов и некоторые другие. Для успешного выполнения лабораторной работы № 2 нужно изучить из пособия [1] темы:
6. ВЫВОД НА ЭКРАН ЧИСЕЛ В ШЕСТНАДЦАТЕРИЧНОЙ ФОРМЕ, 9. ВВОД С КЛАВИАТУРЫ ШЕСТНАДЦАТЕРИЧНЫХ ЧИСЕЛ.
Одной из целей работы является развитие навыков алгоритмизации задач и отладки программ. До сих пор нашим единственным помощником при написании и отладке машинных программ была системная программа Debug. Мы и далее будем широко использовать Debug при отладке своих программ. Что касается написания программы, то тут помощь Debug явно недостаточна, и процесс написания скольконибудь сложной программы скорее всего продлится очень долго. По этой причине мы переходим к написанию программ на языке ассемблера. Целью выполнения данной работы является получение начальных навыков по разработке программ на языке ассемблера. А именно — рассматриваются псевдооператоры, позволяющие разрабатывать простые ассемблерные программы, а также производится первоначальное знакомство с системными программами (EDIT, NASM), обеспечивающими преобразование программы на языке ассемблера в машинную программу. Для этого из пособия [1] изучите темы и выполните все задания к ним 11. ПРОСТЫЕ ПРОГРАММЫ НА АССЕМБЛЕРЕ, 12 12. ОСНОВНЫЕ ОПЕРАТОРЫ АССЕМБЛЕРА, 13.
Пример программы на ассемблере, 14. ВЫВОД НА ЭКРАН ДЕСЯТИЧНЫХ И ШЕСТНАДЦАТЕРИЧНЫХ ЧИСЕЛ. Задание Разработать на ассемблере и отладить программу, которая выполняет:
1) ввод с клавиатуры двух 4-значных шестнадцатеричных чисел (для ввода с клавиатуры можно использовать любые числа), которые записываются в качестве содержимого регистров BP и DI;
2) вывод на экран содержимого регистров, заполненных на шаге 1, в виде шестнадцатеричных чисел;
3) вывод на экран содержимого регистров, заполненных на шаге 1, в виде десятичных чисел;
4) вывод на экран содержимого регистров, заполненных на шаге 1, в виде двоичных чисел.
Пример информации на экране: ВВЕДИТЕ СОДЕРЖИМОЕ РЕГИСТРА BP AD56 ВВЕДИТЕ СОДЕРЖИМОЕ РЕГИСТРА DI 7F09 ЧИСЛА В ШЕСТНАДЦАТЕРИЧНОЙ СИСТЕМЕ (BP) = AD56 (DI) = 7F09 ЧИСЛА В ДЕСЯТИЧНОЙ СИСТЕМЕ (BP) = 44374 (DI) = 32521 ЧИСЛА В ДВОИЧНОЙ СИСТЕМЕ (BP) = 1010110101010110 (DI) = 0111111100001001
Примечание 1. Файловая структура программы должна включать два файла типа .asm. В одном из них содержатся главная подпрограмма и тексты выводимых сообщений. Все остальные процедуры содержатся во втором файле.
Примечание 2. Все процедуры должны иметь вводные и текущие комментарии.
Примечание 3. Рекомендуется дополнительно разработать процедуру, выполняющую ввод шестнадцатеричного числа в 16-битный регистр, процедуру вывода содержимого такого реги- 13 стра в шестнадцатеричном виде, а также процедуру вывода содержимого 16-битного регистра в десятичной системе счисления и в двоичной системе счисления. Для того чтобы реализовать вывод на экран чисел в десятичной системе счисления, воспользуйтесь алгоритмом вывода десятичного числа из [1].
Примечание 4. При реализации вывода второй и третьей шестнадцатеричных цифр числа, сдвигу числа вправо должен предшествовать его сдвиг влево. Для выполнения сдвига влево используйте инструкцию SHL («Shift Left» — логический сдвиг влево). Использование этой инструкции аналогично SHR. Выполнение SHL имеет такой же эффект, как и умножение на два, четыре, восемь и так далее, в зависимости от числа (соответственно единицы, двойки или тройки), хранящегося в СL.
Примечание 5. Для получения на экране достаточно хорошей формы представления информации выполняйте вывод промежуточных пробелов. Число пробелов определяйте опытным путем. Отчет по лабораторной работе № 2 должен содержать: 1. Титульный лист — форма титульного листа представлена в Приложении 4. 2. Задание на лабораторную работу, для ввода с клавиатуры можно использовать любые числа. 3. Дерево подпрограмм. Пример дерева подпрограмм приведен в приложении 3 (рис. 4). 4. Файловую структуру программы. Примеры файловой структуры программы приведены в [1] рис. 14.3 и 15.1. На проверку необходимо отправить каталог LAB2, в который нужно поместить: 1. Исходный файл программы, то есть файл с расширением .asm. Имя файла может быть выбрано по Вашему усмотрению, но придерживайтесь правил именования файлов для DOS — имя должно состоять не более чем из 8 символов. 2. Исполнимый файл программы, то есть файл с расширением .com 3. Отчет к лабораторной работе, выполненный с помощью редактора Word.
| Гарантия на работу | 1 год |
| Средний балл | 4.54 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |