- •Лабораторная работа №3
- •А. Постановка задачи
- •Б. Разработка алгоритма
- •Если число введено неверно, то вывод: "incorrect. " — и возврат к п. 4.
- •Конвертирование числа из ascii формата в bin.
- •Вызов функции 2-ой лабораторной работы.
- •Вывод результата.
- •Выход из программы. В. Таблица идентификаторов
- •Г. Таблица результатов
- •Е. Программа
- •; Файл nasm
- •Ж. Выводы
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА"
Факультет инфокоммуникационных сетей и систем
Кафедра программной инженерии и вычислительной техники
Лабораторная работа №3
«ВВОД-ВЫВОД НА АССЕМБЛЕРЕ (В DOS И LINUX)»
по дисциплине «Машинно-зависимые языки программирования»
Выполнил:
студент 1 курса
дневного отделения
группы ИКПИ-##
Фамилия И. О.
Санкт-Петербург 2019
А. Постановка задачи
Реализовать целочисленные вычисления, сделанные в лабораторной работе №2, полностью используя язык Ассемблера для организации корректного ввода-вывода информации:
-
Исходные данные должны вводиться с проверкой правильности вводимых символов;
-
Входные данные и результат должны быть проверены на область допустимых значений;
-
При наличии ошибки должно быть выдано соответствующее сообщение.
Реализация задачи должна быть выполнена для MS DOS и для Linux.
В MS DOS следует написать программу, содержащую вызов функций DOS.
В Linux следует воспользоваться внешними функциями printf и scanf.
Задание 2-рой лабораторной работы:
Б. Разработка алгоритма
MS DOS. TASM.
Регистры 16-битные (AX, BX…). Используются функции DOS (int 21h).
Программа на ASM должна делать следующее:
-
Вывод пользовательского приглашения к вводу: "ENTER A: ".
-
Ввод пользователем числа (возможно, со знаком) A.
-
Если число введено неверно, то вывод: "INCORRECT. " — и возврат к п. 1.
-
Конвертирование числа из ASCII формата в BIN.
-
Вывод пользовательского приглашения к вводу: "ENTER B: ".
-
Ввод пользователем числа (возможно, со знаком) B.
-
Если число введено неверно, то вывод: "incorrect. " — и возврат к п. 4.
-
Конвертирование числа из ascii формата в bin.
-
Вызов функции 2-ой лабораторной работы.
-
Конвертирование результативного числа из формата BIN в ASCII формат.
-
Вывод результата.
-
Выход из программы.
LINUX DEBIAN x64. NASM.
Регистры 64-битные (RAX, RBX…). Используются внешние функции scanf, printf.
-
Вывод приглашения к вводу числа A (printf).
-
Ввод числа A (scanf).
-
Вывод приглашения к вводу числа B (printf).
-
Ввод числа B (scanf).
-
Вызов функции 2-ой лабораторной работы.
-
Вывод результата.
-
Выход из программы. В. Таблица идентификаторов
N |
Обозначение в задаче |
Идентификатор |
Назначение |
1 |
A (signed int) |
number1 |
Входные данные |
2 |
B (signed int) |
number2 |
|
3 |
— |
INPUT_ERROR_MESSAGE StringType: "INCORRECT." |
Промежуточные данные TASM |
4 |
— |
MESSAGE1 StringType: "ENTER A:" |
|
5 |
— |
MESSAGE2 StringType: "ENTER B:" |
|
6 |
— |
BIN_VALUE — DW |
|
7 |
— |
MULT10 — DW |
|
8 |
— |
ENDLINE DB 13, 10, '$' |
|
9 |
— |
ZMINUS DB '-$' |
|
10 |
— |
msg1 StringType: "Enter A:", 0 |
Промежуточные данные NASM |
11 |
— |
msg2 StringType: "Enter B:", 0 |
|
12 |
— |
scanf_msg db '%d', 0 |
|
13 |
— |
endl db 0xA, 0x0 |
|
14 |
Результат |
RESULT |
Выходные данные |