🗊Презентация Подпрограммы. Выполнение подпрограмм

Нажмите для полного просмотра!
Подпрограммы. Выполнение подпрограмм, слайд №1Подпрограммы. Выполнение подпрограмм, слайд №2Подпрограммы. Выполнение подпрограмм, слайд №3Подпрограммы. Выполнение подпрограмм, слайд №4Подпрограммы. Выполнение подпрограмм, слайд №5Подпрограммы. Выполнение подпрограмм, слайд №6Подпрограммы. Выполнение подпрограмм, слайд №7Подпрограммы. Выполнение подпрограмм, слайд №8Подпрограммы. Выполнение подпрограмм, слайд №9Подпрограммы. Выполнение подпрограмм, слайд №10Подпрограммы. Выполнение подпрограмм, слайд №11Подпрограммы. Выполнение подпрограмм, слайд №12Подпрограммы. Выполнение подпрограмм, слайд №13Подпрограммы. Выполнение подпрограмм, слайд №14Подпрограммы. Выполнение подпрограмм, слайд №15Подпрограммы. Выполнение подпрограмм, слайд №16Подпрограммы. Выполнение подпрограмм, слайд №17Подпрограммы. Выполнение подпрограмм, слайд №18Подпрограммы. Выполнение подпрограмм, слайд №19Подпрограммы. Выполнение подпрограмм, слайд №20Подпрограммы. Выполнение подпрограмм, слайд №21Подпрограммы. Выполнение подпрограмм, слайд №22Подпрограммы. Выполнение подпрограмм, слайд №23Подпрограммы. Выполнение подпрограмм, слайд №24Подпрограммы. Выполнение подпрограмм, слайд №25Подпрограммы. Выполнение подпрограмм, слайд №26Подпрограммы. Выполнение подпрограмм, слайд №27Подпрограммы. Выполнение подпрограмм, слайд №28Подпрограммы. Выполнение подпрограмм, слайд №29Подпрограммы. Выполнение подпрограмм, слайд №30Подпрограммы. Выполнение подпрограмм, слайд №31Подпрограммы. Выполнение подпрограмм, слайд №32Подпрограммы. Выполнение подпрограмм, слайд №33Подпрограммы. Выполнение подпрограмм, слайд №34Подпрограммы. Выполнение подпрограмм, слайд №35Подпрограммы. Выполнение подпрограмм, слайд №36Подпрограммы. Выполнение подпрограмм, слайд №37Подпрограммы. Выполнение подпрограмм, слайд №38Подпрограммы. Выполнение подпрограмм, слайд №39Подпрограммы. Выполнение подпрограмм, слайд №40Подпрограммы. Выполнение подпрограмм, слайд №41Подпрограммы. Выполнение подпрограмм, слайд №42Подпрограммы. Выполнение подпрограмм, слайд №43Подпрограммы. Выполнение подпрограмм, слайд №44Подпрограммы. Выполнение подпрограмм, слайд №45Подпрограммы. Выполнение подпрограмм, слайд №46Подпрограммы. Выполнение подпрограмм, слайд №47Подпрограммы. Выполнение подпрограмм, слайд №48Подпрограммы. Выполнение подпрограмм, слайд №49

Содержание

Вы можете ознакомиться и скачать презентацию на тему Подпрограммы. Выполнение подпрограмм. Доклад-сообщение содержит 49 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Подпрограммы
Описание слайда:
Подпрограммы

Слайд 2





Выполнение подпрограмм
Описание слайда:
Выполнение подпрограмм

Слайд 3





Команды процессора для работы с подпрограммами
Вызов подпрограммы – CALL
Возврат из подпрограммы – RET

	команды относятся к командам передачи управления
Описание слайда:
Команды процессора для работы с подпрограммами Вызов подпрограммы – CALL Возврат из подпрограммы – RET команды относятся к командам передачи управления

Слайд 4





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 5





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 6





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 7





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 8





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 9





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 10





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 11





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 12





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 13





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 14





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 15





Команды процессора для работы с подпрограммами
Описание слайда:
Команды процессора для работы с подпрограммами

Слайд 16





Где описываются программы
MOV …
	Procedure:
	ADD …
	NEG …
	RET
SUB …
MULL …
CALL Procedure
CDQ
IDIV …
Описание слайда:
Где описываются программы MOV … Procedure: ADD … NEG … RET SUB … MULL … CALL Procedure CDQ IDIV …

Слайд 17





Где описываются программы
MOV …
JMP MainNext
	Procedure:
	ADD …
	NEG …
	RET
MainNext:
SUB …
MULL …
CALL Procedure
CDQ
IDIV …
Описание слайда:
Где описываются программы MOV … JMP MainNext Procedure: ADD … NEG … RET MainNext: SUB … MULL … CALL Procedure CDQ IDIV …

Слайд 18





Где описываются программы
Перед основной программой
После основной программы
В отдельном модуле
Описание слайда:
Где описываются программы Перед основной программой После основной программы В отдельном модуле

Слайд 19





Где описываются программы
Перед основной программой
.code
Procedure:
	; код подпрограммы
RET

Start:
	; код основной программы
	CALL Procedure
	; код основной программы
end Start
Описание слайда:
Где описываются программы Перед основной программой .code Procedure: ; код подпрограммы RET Start: ; код основной программы CALL Procedure ; код основной программы end Start

Слайд 20





Где описываются программы
После основной программы
.code
Start:
	; код основной программы
	CALL Procedure
	; код основной программы
	CALL ExitProcess

Procedure:
	; код подпрограммы
RET
end Start
Описание слайда:
Где описываются программы После основной программы .code Start: ; код основной программы CALL Procedure ; код основной программы CALL ExitProcess Procedure: ; код подпрограммы RET end Start

Слайд 21





Способы передачи параметров в подпрограммы
Через регистры общего назначения
Через общую память
Через стек
Описание слайда:
Способы передачи параметров в подпрограммы Через регистры общего назначения Через общую память Через стек

Слайд 22





Передача параметров через регистры общего назначения
Factorial:
	MOV ECX, EAX
	MOV EBX, 2
	MOV EAX, 1
	Cycle:
		CMP EBX, ECX
		JG EndFunction
		MUL EBX
		INC EBX
	JMP Cycle
	EndFunction:
RET
Описание слайда:
Передача параметров через регистры общего назначения Factorial: MOV ECX, EAX MOV EBX, 2 MOV EAX, 1 Cycle: CMP EBX, ECX JG EndFunction MUL EBX INC EBX JMP Cycle EndFunction: RET

Слайд 23





Передача параметров через регистры общего назначения
.data
	n dd 5
.data?
	result dd ?
.code
	Factorial:
		; тело функции
	RET
	Start:
	MOV EAX, n
	CALL Factorial
	MOV result, EAX
Описание слайда:
Передача параметров через регистры общего назначения .data n dd 5 .data? result dd ? .code Factorial: ; тело функции RET Start: MOV EAX, n CALL Factorial MOV result, EAX

Слайд 24





Передача параметров через регистры общего назначения
Достоинства
легко использовать
большая скорость работы
можно возвращать несколько значений
Описание слайда:
Передача параметров через регистры общего назначения Достоинства легко использовать большая скорость работы можно возвращать несколько значений

Слайд 25





Передача параметров через регистры общего назначения
Недостатки
малое количество параметров
трудности использования регистров в подпрограмме
трудности вложенных и рекурсивных вызовов
Описание слайда:
Передача параметров через регистры общего назначения Недостатки малое количество параметров трудности использования регистров в подпрограмме трудности вложенных и рекурсивных вызовов

Слайд 26





Передача параметров через общую память
Factorial:
	MOV ECX, param
	MOV EBX, 2
	MOV EAX, 1
	Cycle:
		CMP EBX, ECX
		JG EndFunction
		MUL EBX
		INC EBX
	JMP Cycle
	EndFunction: MOV param+4, EAX
RET
Описание слайда:
Передача параметров через общую память Factorial: MOV ECX, param MOV EBX, 2 MOV EAX, 1 Cycle: CMP EBX, ECX JG EndFunction MUL EBX INC EBX JMP Cycle EndFunction: MOV param+4, EAX RET

Слайд 27





Передача параметров через общую память
.data
	n dd 5
.data?
	result dd ?
	param dd 2 dup(?)
.code

	MOV EAX, n
	MOV param, EAX
	CALL Factorial
	MOV EAX, param+4
	MOV result, EAX
Описание слайда:
Передача параметров через общую память .data n dd 5 .data? result dd ? param dd 2 dup(?) .code MOV EAX, n MOV param, EAX CALL Factorial MOV EAX, param+4 MOV result, EAX

Слайд 28





Передача параметров через общую память
Достоинства
произвольное количество параметров
переменное количество параметров
регистры общего назначения свободны
Описание слайда:
Передача параметров через общую память Достоинства произвольное количество параметров переменное количество параметров регистры общего назначения свободны

Слайд 29





Передача параметров через общую память
Недостатки
низкое быстродействие
трудности рекурсивных вызовов
Описание слайда:
Передача параметров через общую память Недостатки низкое быстродействие трудности рекурсивных вызовов

Слайд 30





Передача параметров через стек
Команды работы со стеком
push – помещает в вершину стека некоторое значение
pop – извлекает из вершины стека некоторое значение
Описание слайда:
Передача параметров через стек Команды работы со стеком push – помещает в вершину стека некоторое значение pop – извлекает из вершины стека некоторое значение

Слайд 31





Передача параметров через стек
Команды работы со стеком
pusha – помещает в вершину стека значения всех регистров общего назначения
popa – извлекает из вершины стека значения всех регистров общего назначения
Описание слайда:
Передача параметров через стек Команды работы со стеком pusha – помещает в вершину стека значения всех регистров общего назначения popa – извлекает из вершины стека значения всех регистров общего назначения

Слайд 32





Передача параметров через стек
Команды работы со стеком
pushf – помещает в вершину стека значение регистра флагов
popf – извлекает из вершины стека значения регистра флагов
Описание слайда:
Передача параметров через стек Команды работы со стеком pushf – помещает в вершину стека значение регистра флагов popf – извлекает из вершины стека значения регистра флагов

Слайд 33





Передача параметров через стек
Стек:
Позволяет обрабатывать только 32-разрядные числа
Адрес вершины стека храниться в регистре ESP (смещение относительно сегментного регистра SS)
Вершина стека, это ячейка памяти, содержащая последнее помещённое в стек значение
Описание слайда:
Передача параметров через стек Стек: Позволяет обрабатывать только 32-разрядные числа Адрес вершины стека храниться в регистре ESP (смещение относительно сегментного регистра SS) Вершина стека, это ячейка памяти, содержащая последнее помещённое в стек значение

Слайд 34





Передача параметров через стек
Алгоритм работы команды push:
add ESP, 4
mov [ESP], <источник>
Описание слайда:
Передача параметров через стек Алгоритм работы команды push: add ESP, 4 mov [ESP], <источник>

Слайд 35





Передача параметров через стек
Алгоритм работы команды pop:
mov <приёмник>, [ESP]
sup ESP, 4
Описание слайда:
Передача параметров через стек Алгоритм работы команды pop: mov <приёмник>, [ESP] sup ESP, 4

Слайд 36





Передача параметров через стек
Алгоритм работы команды call:
add EIP, <размер команды call>
add ESP, 4
mov [ESP], EIP
mov EIP, <адрес метки>
Описание слайда:
Передача параметров через стек Алгоритм работы команды call: add EIP, <размер команды call> add ESP, 4 mov [ESP], EIP mov EIP, <адрес метки>

Слайд 37





Передача параметров через стек
Алгоритм работы команды ret:
mov EIP, [ESP]
sub ESP, 4
Описание слайда:
Передача параметров через стек Алгоритм работы команды ret: mov EIP, [ESP] sub ESP, 4

Слайд 38





Передача параметров через стек
Factorial:
	MOV ECX, [ESP+8]
	MOV EBX, 2
	MOV EAX, 1
	Cycle:
		CMP EBX, ECX
		JG EndFunction
		MUL EBX
		INC EBX
	JMP Cycle
	EndFunction: MOV [ESP+4], EAX
RET
Описание слайда:
Передача параметров через стек Factorial: MOV ECX, [ESP+8] MOV EBX, 2 MOV EAX, 1 Cycle: CMP EBX, ECX JG EndFunction MUL EBX INC EBX JMP Cycle EndFunction: MOV [ESP+4], EAX RET

Слайд 39





Передача параметров через стек
.data
	n dd 5
.data?
	result dd ?
.code

	PUSH n
	PUSH 0
	CALL Factorial
	POP result
	ADD ESP, 4
Описание слайда:
Передача параметров через стек .data n dd 5 .data? result dd ? .code PUSH n PUSH 0 CALL Factorial POP result ADD ESP, 4

Слайд 40





Передача параметров через стек
Достоинства
произвольное количество параметров
переменное количество параметров
простота использования
легкая организация рекурсии
Описание слайда:
Передача параметров через стек Достоинства произвольное количество параметров переменное количество параметров простота использования легкая организация рекурсии

Слайд 41





Передача параметров через стек
Недостатки
трудно отслеживать состояние стека
после вызова подпрограммы основная программа должна выравнивать стек
Описание слайда:
Передача параметров через стек Недостатки трудно отслеживать состояние стека после вызова подпрограммы основная программа должна выравнивать стек

Слайд 42





Подпрограммы в C
параметры передаются через стек (при этом в стек параметры помещаются с конца)
Результат возвращается в регистрах
1 байт – AL
2 байта – AX
4 байта – EAX
8 байт – (EAX, EDX)
Описание слайда:
Подпрограммы в C параметры передаются через стек (при этом в стек параметры помещаются с конца) Результат возвращается в регистрах 1 байт – AL 2 байта – AX 4 байта – EAX 8 байт – (EAX, EDX)

Слайд 43





Функции Windows API
после вызова функций с фиксированным числом параметров не нужно выравнивать стек
Описание слайда:
Функции Windows API после вызова функций с фиксированным числом параметров не нужно выравнивать стек

Слайд 44





Передача параметров с использование STDCALL
Factorial:
	MOV ECX, [ESP+4]
	MOV EBX, 2
	MOV EAX, 1
	Cycle:
		CMP EBX, ECX
		JG EndFunction
		MUL EBX
		INC EBX
	JMP Cycle
	EndFunction:
RET 4
Описание слайда:
Передача параметров с использование STDCALL Factorial: MOV ECX, [ESP+4] MOV EBX, 2 MOV EAX, 1 Cycle: CMP EBX, ECX JG EndFunction MUL EBX INC EBX JMP Cycle EndFunction: RET 4

Слайд 45





Передача параметров с использование STDCALL
.data
	n dd 5
.data?
	result dd ?
.code

	PUSH n
	CALL Factorial
	MOV result, EAX
Описание слайда:
Передача параметров с использование STDCALL .data n dd 5 .data? result dd ? .code PUSH n CALL Factorial MOV result, EAX

Слайд 46





Создание локальных переменных в стеке
[ESP] – точка возврата
[ESP + 4] – первый параметр функции
[ESP + 8] – второй параметр функции
и т. д.
Описание слайда:
Создание локальных переменных в стеке [ESP] – точка возврата [ESP + 4] – первый параметр функции [ESP + 8] – второй параметр функции и т. д.

Слайд 47





Создание локальных переменных в стеке
SUB ESP, 4
[ESP] – локальная переменная
[ESP + 4] – точка возврата
[ESP + 8] – первый параметр функции
[ESP + 12] – второй параметр функции
и т. д.
Описание слайда:
Создание локальных переменных в стеке SUB ESP, 4 [ESP] – локальная переменная [ESP + 4] – точка возврата [ESP + 8] – первый параметр функции [ESP + 12] – второй параметр функции и т. д.

Слайд 48





Пролог функции
PUSH EBP
MOV EBP, ESP
SUB ESP, 8
[EBP] – исходное значение EBP
[EBP + 4] – точка возврата
[EBP + 8] – первый параметр функции
[EBP + 12] – второй параметр функции
и т. д.
[EBP – 4] – вторая локальная переменная
[EBP – 8] – первая локальная переменная
и т. д.
Описание слайда:
Пролог функции PUSH EBP MOV EBP, ESP SUB ESP, 8 [EBP] – исходное значение EBP [EBP + 4] – точка возврата [EBP + 8] – первый параметр функции [EBP + 12] – второй параметр функции и т. д. [EBP – 4] – вторая локальная переменная [EBP – 8] – первая локальная переменная и т. д.

Слайд 49





Эпилог функции
MOV ESP, EBP
POP EBP
RET 12
Описание слайда:
Эпилог функции MOV ESP, EBP POP EBP RET 12



Похожие презентации
Mypresentation.ru
Загрузить презентацию