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

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

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

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

Лабораторная работа №1

«ВЫЧИСЛЕНИЕ ЦЕЛОЧИСЛЕННЫХ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ»

по дисциплине «Машинно-зависимые языки программирования»

Выполнил:

студент 1 курса

дневного отделения

группы ИКПИ-##

Фамилия И. О.

Санкт-Петербург 2019

А. Постановка задачи

Вычислить заданное целочисленное выражение для исходных данных в знаковых и беззнаковых форматах длиной 8 и 16 бит: signed char, unsigned char, signed int, unsigned int, используя арифметические операции ADD, ADC, INC, SUB, SBB, DEC, NEG, MUL, IMUL, DIV, IDIV, CBW, CWD.

Исходные значения переменных вводятся пользователем с клавиатуры. Они должны быть максимально приближены к максимально-возможным для тех типов данных, с которыми решается задача. При вводе данных рекомендуется вывести диапазон возможных значений. Размер и тип числителя, знаменателя и результата зависит от заданного выражения.

Программа на языке Си должна вывести на экран числитель, знаменатель и результат вычисления на языке Си, а также числитель, знаменатель и результат вычисления на языке ASM. Обмен данными между Си и ASM — модулем должен осуществляться через глобальные переменные, определенные в модуле Си.

Б. Разработка алгоритма

Все четыре формата данных будут продемонстрированы в одном проекте.

Входные данные состоят из 12 чисел A, B, D (signed char, unsigned char, signed int, unsigned int).

Выходные данные состоят из числителя, знаменателя и результата вычисления на языке Си и ASM для каждого типа задания (signed char, unsigned char, signed int, unsigned int). Переменные числителя и результата в два раза больше размера переменной знаменателя.

Промежуточные данные: переменная типа int под названием "t" для поддержки ввода типа char с клавиатуры (переменная считывается как число, а не символ).

Размеры типов данных.

sizeof(signed int) = sizeof(unsigned int) = WORD (16 бит)

sizeof(signed char) = sizeof(unsigned char) = BYTE (8 бит)

В. Таблица идентификаторов

N

Обозначение в задаче

Идентификатор

Назначение

1

A (signed int)

Si_A

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

2

B (signed int)

Si_B

3

D (signed int)

Si_D

4

A (unsigned int)

Ui_A

5

B (unsigned int)

Ui_B

6

D (unsigned int)

Ui_D

7

A (signed char)

Sc_A

8

B (signed char)

Sc_B

9

D (signed char)

Sc_D

10

A (unsigned char)

Uc_A

11

B (unsigned char)

Uc_B

12

D (unsigned char)

Uc_D

13

t

Промежуточные данные

14

Числитель (signed int)

SiNumerator

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

15

Знаменатель (signed int)

SiDenominator

16

Результат (signed int)

SiResult

17

Числитель (unsigned int)

UiNumerator

18

Знаменатель (unsigned int)

UiDenominator

19

Результат (unsigned int)

UiResult

20

Числитель (signed char)

ScNumerator

21

Знаменатель (signed char)

ScDenominator

22

Результат (signed char)

ScResult

23

Числитель (unsigned char)

UcNumerator

24

Знаменатель (unsigned char)

UcDenominator

25

Результат (unsigned char)

UcResult

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