Расчетно-графическая работа [вариант 23-б] / Моя РГР Вариант 23-б
.docГосударственное образовательное учреждение высшего профессионального образования
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра Технической Кибернетики
Расчётно-графическая работа
по дисциплине
«ЭВМ и вычислительные системы»
Вариант 23-б
Выполнил:
студент группы РС-218
Шикунов В.В.
Проверил: к.т.н., доц. кафедры АПрИС
Мукасеева В.Н.
Уфа 2008
Цель работы:
Основной целью расчётно-графической работы является получение знаний и навыков, необходимых для формирования грамотного подхода к проектированию и тестированию разрабатываемых программ. Для достижения этой цели необходимо решить следующие задачи:
-
Применить знания и умения, приобретённые в предыдущих дисциплинах для формализованного описания задачи обработки данных;
-
Научиться разрабатывать внешние спецификации проектируемой программы в виде схемы программы;
-
Научиться проектировать тесты, позволяющие установить соответствие разработанного программного обеспечения его внешним спецификациям.
Задание:
Найти сумму элементов строк двухмерного массива и определить строку (указать номер строки) с минимальной суммой элементов, причём, элементы массива – двухбайтовые.
Математическое описание задачи обработки:
Sum3 = Sum3+AL
Переход к следующему элементу массива
Значение в СХ
число элементов строки
Листинг программы:
STACK SEGMENT PARA STACK 'STACK'
DB 64 DUP ('STACK')
STACK ENDS
DSEG SEGMENT PARA PUBLIC 'DATA'
MAS dw 1,2,8,1,9,0,5
dw 1,8,9,6,5,7,2
dw 6,-7,15,0,8,-10,3
vsego_elementov=$-mas
dlina_stroki equ 7
Mess1 db 0ah,0dh,'min Summa elementov strok=$'
mess2 db 0ah,0dh,'Nomer stroki s MIN summoi=$'
SUM1 Dw 0
SUM2 Dw 0
SUM3 Dw 0
SUM Dw 0
min dw 0
nomer db 0
R DB ?
C DB 10
DSEG ENDS
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME cs:CSEG, DS:DSEG, SS:STACK
START PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
lea bx, mas ; смещение
push cx
xor si,si
mov cx,dlina_stroki
m1: mov dx,[bx][si]
add sum1,dx
inc si
inc si
loop m1 ;цикл до тех пор пока сх не станет =0
push cx
mov cx,dlina_stroki
mov dx,0
lea bx, mas ; смещение
m2: mov dx,[bx][si]
add sum2,dx
;mov dl,sum2
inc si
inc si
loop m2
push cx
mov cx,dlina_stroki
m3: mov dx,[bx][si]
add sum3,dx
inc si
inc si
loop m3
mov bl,1
mov dx, sum1
cmp sum2,dx
jb m5
ja m7
m5: mov dx,sum2
mov bl,2
m7: cmp sum3,dx
jb m6 ; первая меньше второго
ja m8 ; первая больше второго
m6: mov dx,sum3
mov bl,3
m8: mov min,dx
mov nomer,bl
mov dx, 0
LEA DX,MESS1
MOV AH,09H
INT 21H
lea bx, min ; смещение
mov si, 0
MOV AL, [bx][si]
CBW
DIV BYTE PTR C
MOV R,AH
MOV DL,AL
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,R
ADD DL,30H
INT 21H
LEA DX,MESS2
MOV AH,09H
INT 21H
MOV AL, nomer
CBW
DIV BYTE PTR C
MOV R,AH
MOV DL,AL
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,R
ADD DL,30H
INT 21H
MOV AH,1H
INT 21H
EXIT: MOV AX,4C00H
INT 21H
CSEG ENDS
END START
Тестирование:
Тест программы № 1:
Исходные данные |
Ожидаемый результат |
Полученный результат |
1,2,8,1,9,0,5 |
Суммы : 26, 38, 35. |
Суммы : 26, 38, 35. |
1,8,9,6,5,7,2 |
Минимальная сумма = 26 |
Минимальная сумма = 26 |
9,5,7,1,2,3,8 |
Номер строки = 1 |
Номер строки = 1 |
Тест программы № 2:
Исходные данные |
Ожидаемый результат |
Полученный результат |
1,2,8,1,9,0,5 |
Суммы : 26, 21, 35. |
Суммы : 26, 21, 35. |
1,0,0,6,5,7,2 |
Минимальная сумма = 21 |
Минимальная сумма = 21 |
9,5,7,1,2,3,8 |
Номер строки = 2 |
Номер строки = 2 |
Тест программы № 3
Исходные данные |
Ожидаемый результат |
Полученный результат |
1,2,8,1,9,0,5 |
Суммы : 24, 27, 15. |
Суммы : 26, 21, 15. |
1,0,0,6,5,7,2 |
Min sum3=15 . |
Минимальная сумма = 15 |
6,-7,15,0,8,-10,3 |
Nomer stroki = 3. |
Номер строки = 3 |
Вывод:
В результате выполнения данной расчётно-графической работы, были получены практические знания проектирования и тестирования программ. Разработана схема работы программы, проделаны тесты, подтвердившие правильность работы программы.
Освоены основы низкоуровневого языка программирования Ассемблер, которые служат обязательной ступенью для изучения программирования на языках высокого уровня.
Список литературы:
-
Юров В.И. Assembler: учебник.
-
Мукасеева В.Н. Лекции по ЭВМ и ВС
-
Мукасеева В.Н. Даринцев О.В. Ассемблер. Методические указания к лабораторным работам 1-2 и 3-5.