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

Слайд 2

Слайд 3

Слайд 4

Слайд 5

Слайд 6

Слайд 7

Слайд 8

_pcount proc far push bp mov bp,sp mov bx,word ptr [bp+6]

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

Слайд 9

Слайд 10

Слайд 11

_fib proc far push bp mov bp,sp sub sp,2 xor dx,dx

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

Слайд 12

Слайд 13

Слайд 14

Слайд 15

Слайд 16

_fib1 proc far push bp mov bp,sp sub sp,2 mov dx,1

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

Слайд 17

Слайд 18

i = 1 i

i = 1

i < n

Слайд 19

Слайд 20

Слайд 21

Слайд 22

_fib2 proc far push bp mov bp,sp sub sp,2 mov bx,1

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

Слайд 23

Слайд 24

Слайд 25

Слайд 26

Слайд 27

Слайд 28

Слайд 29

Слайд 30

Слайд 31

Слайд 32

Слайд 33

Слайд 34

Слайд 35

Слайд 36

Слайд 37

Слайд 38

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

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

Слайд 39

Слайд 40

Слайд 41

Слайд 42

Слайд 43

Слайд 44

_caller proc far push ebp mov ebp,esp sub esp,16 mov dword

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

ptr [ebp-12],eax
mov eax,dword ptr [ebp-4]
sub eax,dword ptr [ebp-8]
mov esp,ebp
pop ebp
ret
Слайд 45

Слайд 46

Слайд 47

_swap_add proc far push ebp mov ebp,esp lea ebx,dword ptr [ebp+8]

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

[ebp+8]
mov dword ptr [ebx],ecx
lea ebx,dword ptr [ebp+12]
mov dword ptr [ebx],edx
mov eax,edx
add eax,ecx
pop ebp
ret
Слайд 48

Слайд 49

Слайд 50

Слайд 51

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

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

Слайд 52

Слайд 53

Слайд 54

_fib proc far push bp mov bp,sp sub sp,4 push si

_fib proc far
push bp
mov bp,sp
sub sp,4
push si
mov si,word ptr [bp+6]
cmp si,2
jg short @1@114
mov ax,1
@1@86:
jmp short @1@142
@1@114:
mov ax,si
add ax,-2
push ax
call near ptr _fib
mov word ptr [bp-2],ax
mov ax,si
dec ax
push ax
call 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
Слайд 55

Слайд 56

Слайд 57

Слайд 58

Слайд 59

Слайд 60

Слайд 61

Слайд 62

Слайд 63

Слайд 64

Слайд 65

Слайд 66

Слайд 67

Слайд 68