Практическая работа №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), сложить их, вывести результат на экран.

Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.

4. Реализация программы, использующей ввод/вывод чисел:

Составить программу согласно условию:

Дано число A7B0h. Вывести его.

Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.

5. Реализация программы, использующей ввод/вывод чисел:

Составить программу согласно условию:

Ввести массив однозначных чисел. Вычислить и вывести сумму всех чисел.

Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.

6. Реализация программы, использующей ввод/вывод чисел:

Составить программу согласно условию:

Ввести два 16-битных числа, сложить их, вывести результат.

Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.

7. Реализация программы, использующей ввод/вывод чисел:

Составить программу согласно условию:

Ввести массив двузначных чисел. Найти и вывести наибольшее из них.

Транслировать ассемблерный код. В случае нахождения ошибок – устранить их и повторить трансляцию. Скомпоновать программу редактором связей. Запустить программу в консольном режиме, в случае обнаружения ошибок в работе программы исправить их, повторить п. п.2,3 Показать работу программы преподавателю.

Содержание отчета по практической работе:

1.  Титульный лист

2.  Цель работы

3.  Краткие теоретические сведения

4.  Описание реализованных программ

5.  Исходный ассемблерный код реализованных программ

6.  Входные и выходные данные по программе.

7.  Выводы по практической работе.