Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры отчетов / ASM. Лаб. 3.docx
Скачиваний:
62
Добавлен:
01.10.2019
Размер:
35.51 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА"

Факультет инфокоммуникационных сетей и систем

Кафедра программной инженерии и вычислительной техники

Лабораторная работа №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 должна делать следующее:

  1. Вывод пользовательского приглашения к вводу: "ENTER A: ".

  2. Ввод пользователем числа (возможно, со знаком) A.

  3. Если число введено неверно, то вывод: "INCORRECT. " — и возврат к п. 1.

  4. Конвертирование числа из ASCII формата в BIN.

  5. Вывод пользовательского приглашения к вводу: "ENTER B: ".

  6. Ввод пользователем числа (возможно, со знаком) B.

  7. Если число введено неверно, то вывод: "incorrect. " — и возврат к п. 4.

  8. Конвертирование числа из ascii формата в bin.

  9. Вызов функции 2-ой лабораторной работы.

  10. Конвертирование результативного числа из формата BIN в ASCII формат.

  11. Вывод результата.

  12. Выход из программы.

LINUX DEBIAN x64. NASM.

Регистры 64-битные (RAX, RBX…). Используются внешние функции scanf, printf.

  1. Вывод приглашения к вводу числа A (printf).

  2. Ввод числа A (scanf).

  3. Вывод приглашения к вводу числа B (printf).

  4. Ввод числа B (scanf).

  5. Вызов функции 2-ой лабораторной работы.

  6. Вывод результата.

  7. Выход из программы. В. Таблица идентификаторов

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

Выходные данные

Соседние файлы в папке Примеры отчетов