Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sys_Programming / metodSP.doc
Скачиваний:
39
Добавлен:
20.02.2016
Размер:
583.68 Кб
Скачать

I этап.

Создать программу со стандартными директивами (3 сегмента, меткой входа и т.д.) в которой:

  1. В сегменте данных описать следующие переменные:

А) Длиной в байт:

  • PRDB1 – не инициализированную

  • PRDB2 – символьная строка

  • PRDB3 – десятиричная константа

  • PRDB4 – шест. константа

  • PRDB5 – двоич. константа

  • PRDB6 – таблица

  • PRDB7 – символьное число

  • PRDB8 – семь единиц

А) Длиной в слово:

  • PRDW1 – шест. константа

  • PRDW2 – двоич. константа

  • PRDW3 – четыре разные константы

  • PRDW4 – восемь нулей

  1. Объявить сегмент стека длиной 256 байт

  2. В сегменте кода:

  • Настроить DS

  • Очистить АХ и ВХ

  • Загрузить PRDB4 в AX

  • Загрузить PRDW2 в BX

  • Сложить АХ и ВХ

  • Загрузить АХ в стек

  • Выгрузить стек в ВХ

  • Завершить программу

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

Цель работы: изучить правила работы с арифметическими командами Ассемблера.

Методические указания

В дальнейшем предполагается, что а, в и с – однобайтовые числа без знака.

Перед выполнением работы, необходимо оценить максимальное значение результата. Например:

1) А*В-С; Максимальное значение: 255*255 – 0=65 025 -> для сохранения результата необходимо место в памяти размером в слово. Поэтому нужно зарезервировать переменную (DW) или две (DB) для хранения результата.

2) А*(В+С); Максимальное значение: 255 * (255 + 255) =130 050 -> для сохранения результата необходимо место в памяти размером в двойное слово (DD). Поэтому нужно зарезервировать две переменные (DW) для хранения результата.

Кроме того, если результат может быть отрицательным, то для фиксирования этого предусмотреть переменную в памяти размером в байт в которую, если знак (+) занести 0, и, если знак (-)-занести FF. Сам результат представить по абсолютной величине.

Вариант №1. (3)

у=а*с+в

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

4

3

2

11

B

00

0B

4

3

255

1023

3FF

03

FF

4

255

2

263

107

01

07

255

255

255

65280

FF00

FF

00

Вариант №2 (3).

у=(а+в)/(с+1)

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h (остаток)

(DB)

y_l

(частное)

(DB)

4

3

2

2

2

01

02

250

50

99

3

3

00

03

Вариант №3. (3)

у=а+в*с

Проверка:

А

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

3

4

2

11

B

00

0B

3

4

255

1023

3FF

03

FF

255

4

2

263

107

01

07

255

255

255

65280

FF00

FF

00

Вариант №4 (3).

у=(а+в)/с

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h (остаток)

(DB)

y_l

(частное)

(DB)

4

3

2

3

3

01

03

250

50

100

3

3

00

03

250

50

1

300

Ошибка

(почему?)

-

-

Вариант №5. (3)

у=а/b+c

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

8

3

2

4

4

00

04

25

5

255

260

144

01

44

Вариант №6. (3)

у=а/b+c+64

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

8

3

2

68

44

00

44

25

5

255

324

104

01

04

Вариант №7. (3)

у=а*а+в

Проверка:

а

в

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

4

3

19

13

00

13

4

255

271

10F

01

0F

255

255

65280

FF00

FF

00

Вариант №8. (4)

у=c-а/b

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h (знак)

(DB)

y_l

(модуль

результата)

(DB)

8

2

3

1

1

00

01

8

3

1

-1

1

FF

01

255

1

1

-254

FE

FF

FE

Вариант №9. (4)

у=(в-a)/с

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h (остаток)

(DB)

y_l

(частное)

(DB)

y_z

(знак)

(DB)

3

10

2

3

3

01

03

00

10

3

2

-3

3

01

03

FF

Вариант №10. (4)

у=в/с+a*c

Проверка:

А

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

10

10

3

33

21

00

21

255

255

255

65026

FE02

FE

02

Вариант №11 (4).

у=a*в-с

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_z

(знак)

(DB)

2

3

4

2

2

00

02

00

255

255

2

65023

FDFF

FD

FF

00

2

3

8

-2

2

00

02

11

Вариант №12. (4)

у=a*в-с/b

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_z

(знак)

(DB)

4

3

7

10

2

00

02

00

255

255

2

65025

FE01

FE

01

00

2

1

255

-253

FD

00

FD

11

Вариант №13. (4)

у=(а+в)*с

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DW)

y_l

(DW)

4

3

2

14

E

0000

000E

250

50

100

30000

7530

0000

7530

250

250

250

125000

1Е848

0001

Е848

Вариант №14.(4)

у=(а-в)*с

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_z

(знак)

(DB)

10

5

3

15

F

00

0F

00

5

10

3

-15

F

00

0F

FF

1

251

250

62500

F424

F4

24

FF

Вариант №15 .(4)

у=а/с-b

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_z (знак)

(DB)

y

(модуль

результата)

(DB)

8

3

2

1

1

00

01

8

3

3

-1

1

FF

01

25

255

25

-254

FE

FF

FE

Вариант №16. (4)

у=а/(b*b)-c

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_z (знак)

(DB)

8

2

1

1

1

00

01

00

20

3

10

-8

8

00

08

FF

Вариант №17. (4)

у=в/с+a*а

Проверка:

А

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

10

10

3

103

67

00

67

255

255

255

65026

FE02

FE

02

Вариант №18. (4)

у=а/b+(c-4)

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_z (знак)

(DB)

8

3

2

0

0

00

00

00

25

5

255

256

100

01

00

00

1

1

1

-2

2

00

02

FF

Вариант №19. (4)

у=(1+c)-а/b

Проверка:

а

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_z

(знак)

(DB)

y_h

(модуль

результата)

(DB)

y_l

(модуль

результата)

(DB)

8

2

4

1

1

00

00

01

8

3

3

-1

1

FF

00

01

255

1

0

-254

FE

FF

00

FE

0

255

255

256

100

00

01

00

Вариант №20. (4)

у=в/с-a*255

Проверка:

А

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_z

(знак)

(DB)

0

10

3

2

2

00

02

00

255

255

5

-64974

FDCE

FD

CE

FF

Вариант №21. (5)

у=(в-1)/с+a*а

Проверка:

А

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_h (знак)

(DB)

10

10

3

103

67

00

67

00

255

255

255

65025

FE01

FE

01

00

1

0

5

1

1

00

01

00

0

0

1

-1

1

00

01

FF

Вариант №22. (5)

у=(в*2)/с+a*а

Проверка:

А

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DB)

y_l

(DB)

y_h (знак)

(DB)

10

10

3

106

6A

00

6A

00

255

255

255

65535

FFFF

FF

FF

00

255

255

1

Ошибка

(почему?)

Вариант №23. (5)

у=в/2-a*а*c

Проверка:

А

в

с

Ответ

Десятиричн.

Шестнадцатиричн

Число

y_h

(DW)

y_l

(DW)

y_z (знак)

(DB)

2

100

3

88

58

0000

0058

00

5

40

2

-30

1E

0000

001E

FF

200

200

2

-79990

1381C

0001

381C

FF

Вариант №24. (5)

у=(c*4+28/b)/(a*b-c-1)

Вариант №25. (5)

у=(c*2++a-21)/(c/a*b+1)

Вариант №26. (5)

у=(c*b+23)/(a/2-4*b-1)

Вариант №27. (5)

у=(b/2-53/c)/(b-a*c+1)

Вариант №28. (5)

у=(8*b+1-c)/(a/2+b*c)

Вариант №29. (5)

у=(a-b/4-1)/(c/31+a*b)

Вариант №30. (5)

у=(2*c-b+23)/(a/4-1)

Соседние файлы в папке Sys_Programming