Практическая работа №8
Ввод информации с клавиатуры
Цель работы: ознакомление с ASCII-таблицей символов; получение навыков реализации программ организующих ввод/вывод числел.
Краткие теоретические сведения
Особенности ввода/вывода десятичных цифр
При вводе с клавиатуры и выводе на экран для всех символов (в том числе и цифр) используется таблица ASCII кодов, в которой каждому символу соответствует 8-битный код (см. Приложение «ASCII-коды»). При этом, например, символу «2» соответствует ASCII-код 32h, символу «9» - 39h.
Для совершения арифметических и других действий над цифрами их необходимо перевести из символьной формы в цифровую. Для этого достаточно вычесть из кода символа десятичной цифры 30h.
При реализации вывода цифровой информации на экран, необходимо цифры перевести в символьную форму согласно ASCII таблице, т. е. к десятичной цифре прибавляется 30h.
Особенности вводе/вывода шестнадцатеричных цифр
Смещение между цифровой формой и символьной для десятичных цифр составляет 30h (см. выше).
Смещение между цифровой формой и символьной для букв шестнадцатеричных цифр составляет 37h. Т. е. для вывода цифры Ah необходимо к ней прибавить 37h, а при вводе с клавиатуры – наоборот – вычесть 37h.
При вводе с клавиатуры символа шестнадцатеричной цифры необходимо определить диапазон, в который он попадает («0»…«9» или «A»…«F»). Для этого код введённого символа сравнивается с кодом символа «9» (39h): если код ≤ «9», то для перевода в цифровую форму вычитается 30h, иначе – 37h.
Особенности ввода двухзначных чисел
При вводе с клавиатуры двузначные числа вводятся поразрядно, т. е. сначала символ старшего разряда, затем символ младшего. Таким образом, после ввода имеется 2 ячейки памяти, в каждой из которых содержится свой разряд. Например, при вводе числа 12, сначала вводится символ цифры «1» и сохраняется в одну ячейку памяти (например, регистр BH), затем «2» – в другую (например, регистр BL).
После этого необходимо перевести введенные символы цифр из кодов ASCII-таблицы в цифровую форму (см. выше).
Для обеспечения возможности арифметических и других операций над введённым числом, необходимо объединить разряды двухзначного числа, т. е., например, из чисел 01 и 02 получить 12. Для этого необходимо:
1) содержимое ячейки памяти со старшим разрядом сдвинуть на 4 бита влево (команда SHL (см. Приложение «Система команд»)), т. е., например, из 01 получить 10. Содержимое ячейки памяти с младшим разрядом не требует изменения;
2) слияние старшего и младшего разрядов командой Логическое ИЛИ (см. Приложение «Система команд»), т. е., например: 10 V 02 = 12.
Особенности вывода двухзначных чисел
Двузначные числа выводятся поразрядно, т. е. сначала символ старшего разряда, затем символ младшего. Таким образом, из двухзначного числа необходимо выделить в разные ячейки памяти отдельно старший и младший разряды. Например, при выводе числа 12, сначала выделяется цифра 1, затем – 2.
Для выделения старшего разряда необходимо: содержимое ячейки памяти с исходным числом сдвинуть на 4 бита вправо (команда SHR (см. Приложение «Система команд»)), т. е., например, из 12 получить 01.
Для выделения старшего разряда необходимо: в содержимом ячейки памяти с исходным числом обнулить старшую тетраду (команда Логическое И (см. Приложение «Система команд»)), т. е., например, из 12 получить 02.
После этого необходимо перевести выделенные цифры из цифровой формы в коды ASCII-таблицы (см. выше). И осуществить вывод символов (см. Практическую работу №7).
Задание на практическую работу:
1. Реализация программы, использующей ввод/вывод чисел:
Составить программу согласно условию:Ввести две цифры с клавиатуры (0..4), сложить их, вывести цифру результата.
Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.2. Реализация программы, использующей ввод/вывод чисел:
Составить программу согласно условию:Ввести цифру в шестнадцатеричной системе счисления (0..Dh), прибавить 2, вывести цифру результата.
Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.3. Реализация программы, использующей ввод/вывод чисел:
Составить программу согласно условию:Ввести две цифры (5..9), сложить их, вывести результат на экран.
4. Реализация программы, использующей ввод/вывод чисел:
Составить программу согласно условию:Дано число A7B0h. Вывести его.
Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.5. Реализация программы, использующей ввод/вывод чисел:
Составить программу согласно условию:Ввести массив однозначных чисел. Вычислить и вывести сумму всех чисел.
Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.6. Реализация программы, использующей ввод/вывод чисел:
Составить программу согласно условию:Ввести два 16-битных числа, сложить их, вывести результат.
Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.7. Реализация программы, использующей ввод/вывод чисел:
Составить программу согласно условию:Ввести массив двузначных чисел. Найти и вывести наибольшее из них.
Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.Содержание отчета по практической работе:
1. Титульный лист
2. Цель работы
3. Краткие теоретические сведения
4. Описание реализованных программ
5. Исходный ассемблерный код реализованных программ
6. Входные и выходные данные по программе.
7. Выводы по практической работе.


