Компьютерные основы программирования Представление программ часть3
Процедуры Структура стекового фрейма
Рекурсивные процедуры
3.21M
Категория: ПрограммированиеПрограммирование

Циклы. Компьютерные основы программирования. Представление программ, часть 3

1. Компьютерные основы программирования Представление программ часть3

Лекция 6, 16 и 23 марта 2017
Лектор: Чуканова Ольга
Владимировна
Кафедра информатики
602 АК
[email protected]

2.

3.

4.

5.

6.

7.

8.

• _pcount
push
mov
mov
xor
• @1@58:
mov
and
mov
add
mov
shr
or
jne
mov
pop
ret
proc far
bp
bp,sp
bx,word ptr [bp+6]
cx,cx
ax,bx
ax,1
dx,cx
dx,ax
cx,dx
bx,1
bx,bx
short @1@58
ax,cx
bp

9.

10.

11.

• _fib proc
push
mov
sub
xor
xor
mov
• @1@58:
mov
add
mov
mov
mov
inc
cmp
jl
mov
mov
pop
ret
far
bp
bp,sp
sp,2
dx,dx
bx,bx
cx,1
ax,bx
ax,cx
word ptr [bp-2],ax
bx,cx
cx,word ptr [bp-2]
dx
dx,word ptr [bp+6]
short @1@58
ax,bx
sp,bp
bp

12.

13.

14.

15.

16.

• _fib1
push
mov
sub
mov
mov
mov
jmp
• @1@58:
mov
add
mov
mov
mov
inc
• @1@86:
cmp
jl
mov
mov
pop
ret
proc far
bp
bp,sp
sp,2
dx,1
bx,1
cx,1
short @1@86
ax,bx
ax,cx
word ptr [bp-2],ax
bx,cx
cx,word ptr [bp-2]
dx
dx,word ptr [bp+6]
short @1@58
ax,bx
sp,bp
bp

17.

18.

i=1
i<n

19.

20.

21.

22.

• _fib2
push
mov
sub
mov
mov
mov
jmp
• @1@58:
mov
add
mov
mov
mov
inc
• @1@114:
cmp
jl
mov
mov
pop
ret
proc far
bp
bp,sp
sp,2
bx,1
cx,1
dx,1
short @1@114
ax,bx
ax,cx
word ptr [bp-2],ax
bx,cx
cx,word ptr [bp-2]
dx
dx,word ptr [bp+6]
short @1@58
ax,bx
sp,bp
bp

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38. Процедуры Структура стекового фрейма

39.

40.

41.

42.

43.

44.

_caller proc
push
mov
sub
mov
mov
lea
push
lea
push
call
add
mov
12],eax
mov
4]
sub
8]
mov
pop
ret
far
ebp
ebp,esp
esp,16
dword ptr [ebp-4],5
dword ptr [ebp-8],3
eax,dword ptr [bp-8]
eax
eax,dword ptr [bp-4]
eax
near ptr _swap_add
esp,16
dword ptr [ebpeax,dword ptr [ebpeax,dword ptr [ebp-
esp,ebp
ebp

45.

46.

47.

_swap_add
push
mov
lea
[ebp+8]
mov
lea
[ebp+12]
mov
lea
[ebp+8]
mov
lea
[ebp+12]
mov
mov
add
pop
ret
proc far
ebp
ebp,esp
ebx,dword ptr
edx,dword ptr [ebx]
ebx,dword ptr
ecx,dword ptr [ebx]
ebx,dword ptr
dword ptr [ebx],ecx
ebx,dword ptr
dword ptr [ebx],edx
eax,edx
eax,ecx
ebp

48.

49.

50.

51. Рекурсивные процедуры

52.

53.

54.

_fib
proc
push
mov
sub
push
mov
cmp
jg
mov
@1@86:
jmp
@1@114:
mov
add
push
call
mov
mov
dec
push
call
far
bp
bp,sp
sp,4
si
si,word ptr [bp+6]
si,2
short @1@114
ax,1
short @1@142
ax,si
ax,-2
ax
near ptr _fib
word ptr [bp-2],ax
ax,si
ax
ax
near ptr _fib
mov
word ptr [bp-4],ax
mov
ax,word ptr [bp-2]
add
ax,word ptr [bp-4]
jmp
short @1@86
@1@142:
pop
si
mov
sp,bp
pop
bp
ret
_fib
endp
English     Русский Правила