- •Содержание
- •Введение
- •Варианты заданий:
- •Лабораторная работа №2 Вариантыпример отчетак содержанию
- •Варианты заданий:
- •Лабораторная работа №3 Вариантыпример отчетак содержанию
- •Варианты заданий к лабораторной работе №3
- •Лабораторная работа №4 Вариантыпример отчетак содержанию
- •Варианты заданий лабораторной работы №4
- •41. В прямоугольной матрице обменять первый столбец с последним.
- •Оценка результатов практикик содержанию
- •Рекомендованная литература
- •Отладка программы в среде отладчикаTd к содержанию
- •Разбор внутреннего представления командк содержанию
- •Примеры разбора команд
- •1. Команды с регистровой адресацией
- •2.Команды с прямой адресацией
- •3. Арифметические команды с непосредственной адресацией
- •4. Команда mov с непосредственной адресацией
- •5. Команды с использованием аккумулятора
- •6. Команды условного перехода (с относительной адресацией)
- •7. Команды безусловного перехода (с относительной адресацией)
- •8. Команда вызова подпрограммы (с относительной адресацией)
- •9. Команда завершения цикла (с относительной адресацией)
- •10. Команды с косвенной адресацией
- •Міністерство освіти і науки
- •Пример отчета по лабораторной работе №1к лаб. Раб.№1
- •Пример отчета по лабораторной работе №2к лаб. Раб.№2
- •Пример отчета по лабораторной работе №3к лаб. Раб.№3
- •Пример отчета по лабораторной работе №4к лаб. Раб. №4
Пример отчета по лабораторной работе №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. Выводы
В процессе выполнения лабораторной работы были усвоены форматы и алгоритмы команд сравнения и условного и безусловного переходов. Результаты работы программы совпадают с результатами, полученными в ручном расчете.