Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania.doc
Скачиваний:
15
Добавлен:
03.03.2016
Размер:
6.75 Mб
Скачать

Пример отчета по лабораторной работе №2к лаб. Раб.№2

Министерство образования и науки

Донецкий национальный технический университет

Кафедра Компьютерной инженерии

Отчет

по лабораторной работе №2

на тему: Программирование разветвляющихся выражений

Выполнил:

Проверил:

Донецк 2013

1. Задание

2. Контрольный просчет результатов

Для вычисления Х по первой ветви зададим А=100, В=-38.

Тогда условие А+В*3 = 100+(-38)*3 =100-114 = 14 < 40.

Х = 36-А*В = 36 - 100*(-38) = 36 + 3800 = 3836 = 0EFCh.

Для вычисления Х по второй ветви зададим А=20, В=20.

Тогда условие А+В*3 = 20+20*3 =20+60 = 80 > 40.

Х = 6-В/A = 6 - 20/20 = 6 - 1 = 5 = 0005h.

Для вычисления Х по третьей ветви зададим А=166, В=-42.

Тогда условие А+В*3 = 166+(-42)*3 =166-126 = 40.

Х = А/В-1 = 166/(-42) -1 = -3 -1 = -4 = FFFCh.

Так как лабораторную работу № 1 выполнили с использованием переменных типа byte, то в лабораторной № 2 будем использовать переменные типа word.

3. Блок-схема

4. Листинг программы

1 ;title lab2

2 ; условие задачи

3 ; / 36-А*В ,если А+В*3<40; А=100, В=-38.

4 ; Х=| А/В-1 ,если А+В*3=40;

5 ; \ 6-В/A ,если А+В*3>40.

6 0000 stack segment stack

*Warning* LAB2.ASM(6) Reserved word used as symbol: STACK

7 0000 40*(00) db 64 dup (0)

8 0040 stack ends

9 0000 dseg segment

10 0000 0064 a dw 100

11 0002 FFDA b dw -38

12 0004 ???? x dw ?

13 0006 dseg ends

14 0000 cseg segment

15 assume cs:cseg,ds:dseg,ss:stack

16 0000 lab2 proc far

17 0000 1E push ds

18 0001 33 C0 xor ax,ax

19 0003 50 push ax

20 0004 BB 0000s mov bx,dseg

21 0007 8E DB mov ds,bx

22 ;----------------------------------

23 0009 B8 0003 mov ax,3

24 000C F7 2E 0002r imul b ;b^3

25 0010 03 06 0000r add ax,a ;b^3+a

26 0014 3D0028cmpax,40 ;сравнениеb^3+aс чисом 40

27 0017 74 11 je m2 ;переход, если равно

28 0019 7F 1B jg m3 ;переход, если больше

29 ;Вычисление х по первой ветви

30 001BA1 0000rmovax,a

31 001E F7 2E 0002r imul b ;a*b

32 0022 2D 0024 sub ax,36 ;a*b-36

33 0025 F7 D8 neg ax ;-(a*b-36)=36-a*b

34 0027 EB 1A 90 jmp m_end ;переход на конец

35 002A m2:

36 ;Вычисление х по второй ветви

37 002A A1 0000r mov ax,a

38 002D 99 cwd

39 002E F7 3E 0002r idiv b ;a/b

40 0032 48 dec ax ;a/b-1

41 0033 EB 0E 90 jmp m_end ;переход на конец

42 0036 m3:

43 ;Вычисление х по третьей ветви

44 0036 A1 0002r mov ax,b

45 0039 99 cwd

46 003A F7 3E 0000r idiv a ;b/a

47 003E 2D 0006 sub ax,6 ;b/a-6

48 0041 F7 D8 neg ax ;-(b/a-6)=6-b/a

49 0043 m_end:

50 0043 A3 0004r mov x,ax ;занесение результата в поле переменной Х

51 0046 CB ret

52 0047 lab2 endp

53 0047 cseg ends

54 end lab2

Symbol Name Type Value

??DATE Text "29/05/12"

??FILENAME Text "LAB2 "

??TIME Text "16:52:21"

??VERSION Number 030A

@CPU Text 0101H

@CURSEG Text CSEG

@FILENAME Text LAB2

@WORDSIZE Text 2

A Word DSEG:0000

B Word DSEG:0002

LAB2 Far CSEG:0000

M2 Near CSEG:002A

M3 Near CSEG:0036

M_END Near CSEG:0043

X Word DSEG:0004

Groups & Segments Bit Size Align Combine Class

CSEG 16 0047 Para none

DSEG 16 0006 Para none

STACK 16 0040 Para Stack

Error Summary

*Warning* LAB2.ASM(6) Reserved word used as symbol: STACK

4. Первая ветвь: А=100 (0064 h) В=-38 (FFDA h) х=3836 (0eFC h)

Дапм памяти

до выполнения программы: после выполнения программы:

Вторая ветвь: А=20 (14 h) , В=20 (14 h) х=5

Дапм памяти

до выполнения программы: после выполнения программы:

Третья ветвь: А=166 (00А6 h), В=-42 (FFD6 h) х=-4 (FFFC h)

Дапм памяти

до выполнения программы: после выполнения программы:

5. Выводы

В процессе выполнения лабораторной работы были усвоены форматы и алгоритмы команд сравнения и условного и безусловного переходов. Результаты работы программы совпадают с результатами, полученными в ручном расчете.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]