
Downloads / лаба9
.rtf
Лабораторна
робота № 9
Дослідження рекурсії
Мета: навчитись досліджувати використання рекурсивної функції(додавання).
Хід роботи:
-
Записати масив array із 7-ми числами: 1 – число масиву номер по журналу , наступні числа збільшуються на одиницю.
-
Включити комп’ютер. Завантажити MS-DOS, NC, зайти в каталог з TASM, TLINK, TD.
-
За допомогою редактора нортоновських команд перенести програму Amo08.asm на машинний носій, виконати її асемблювання і компановку, реквізити файлів asm, obj, exe привести в звіті.
-
За допомогою турбо-дебагера виконати програму amo08.exe, результаті привести у вигляді таблиці.
-
Скласти таблицю рекурсивного отримання суми. Довести правильність отриманих сум.
-
Правильно виключити комп’ютер.
model small
.data
array dw 24,25,26,27,28,29,30
numbers dw 7
.code
begin:
mov ax,@data
mov ds,ax
lea bx,array
mov cx,numbers
xor ax,ax
for: add ax,[bx]
add bx,2
Loop for
mov si,5555h
mov dx,ax
mov ax,4c00h
int 21h
end
begin
№ |
Команда |
Регістри |
||
назва |
до |
після |
||
1. |
mov ds,ax |
ds |
0A10 |
0A22 |
2. |
mov bx,0000 |
bx |
0000 |
0000 |
3. |
mov cx,[000E] |
cx |
0000 |
0007 |
4. |
xor ax,ax |
ax |
0А22 |
0000 |
5. |
add ax,bx |
ax |
0000 |
0018 |
6. |
add dx,0002 |
bx |
0000 |
0002 |
7. |
loop 000E ↑ |
cx |
0007 |
0006 |
|
|
ip |
0013 |
000E |
8. |
add ax[bx] |
ax |
0018 |
0031 |
9. |
add bx,0002 |
bx |
0002 |
0004 |
10. |
loop 000E ↑ |
cx |
0006 |
0005 |
|
|
ip |
0013 |
000E |
11. |
add ax[bx] |
ax |
0031 |
004B |
12. |
add bx,0002 |
bx |
0004 |
0006 |
13. |
loop 000E ↑ |
cx |
0005 |
0004 |
|
|
ip |
0013 |
000E |
14. |
add ax[bx] |
ax |
004B |
0066 |
16. |
add bx,0002 |
bx |
0006 |
0008 |
|
loop 000E ↑ |
cx |
0004 |
0003 |
|
|
ip |
0013 |
000E |
17. |
add ax[bx] |
ax |
0066 |
0082 |
18. |
add bx,0002 |
bx |
0008 |
000A |
19. |
loop 000E ↑ |
cx |
0003 |
0002 |
|
|
ip |
0013 |
000E |
20. |
add ax[bx] |
ax |
0082 |
009F |
21. |
add bx,0002 |
bx |
000A |
000C |
22. |
loop 000E↑ |
cx |
0001 |
0000 |
|
|
ip |
0013 |
000E |
23. |
add ax[bx] |
ax |
009F |
00BD |
24. |
add bx,0002 |
bx |
0002 |
0004 |
25. |
loop 000E |
cx |
000C |
000E |
|
|
ip |
0013 |
0015 |
26. |
mov si,5555 |
si |
0000 |
5555 |
27. |
mov dx,ax |
dx |
0000 |
00BD |
28. |
mov ax,4C00 |
ax |
00BD |
4C00 |
29. |
int |
|
|
|
amo08.asm 362 2.01.13 10:20P
Remaining memory: 261 k
amo08.obj 267 2.01.13 10:21P
amo08.exe 570 2.01.13 10:21P
i |
16-річна |
10-річна |
∆10 |
1 |
18 |
24 |
25 |
2 |
31 |
49 |
|
26 |
|||
3 |
4B |
75 |
|
27 |
|||
4 |
66 |
102 |
|
28 |
|||
5 |
82 |
130 |
|
29 |
|||
6 |
9F |
159 |
|
30 |
|||
7 |
BD |
189 |
Висновок: я навчився досліджувати використання рекурсивної
функції