Слайд 2Передача параметров
Процедуры на ЯВУ
Процедуры на Aссемблере
Договоренности (конвенции) о передаче параметров
…
…
Слайд 3Основные правила
Параметры в стеке
Возвращаемое значение в ax (eax)
Конвенция определяет:
порядок занесения параметров в
стек (прямой, обратный);
процедуру, которая должна выполнять очистку стека (вызывающая/вызываемая);
искажение имен процедур.
Слайд 4Конвенция С
spo(a,b,c); push c
push b
push a
call _spo
add sp,6
с
b
a
ss:sp
A
=
ip
Слайд 5_spo proc
; пролог
push bp
mov bp,sp
;первый аргумент [bp+4]
;…
pop bp
ret
_spo endp
c
b
a
ip
bp
bp=sp
bp+2
bp+4
bp+6
bp+8
A
Слайд 6Конвенция Pascal
spo(a,b,c); push a
push b
push c
call SPO
a
b
c
ss:sp
A
=
ip
Слайд 7SPO proc
; пролог
push bp
mov bp,sp
;первый аргумент [bp+8]
;…
pop bp
ret 6
SPO endp
a
b
c
ip
bp
bp=sp
bp+2
bp+4
bp+6
bp+8
Слайд 8Конвенция stdcall
Standard Calling Convention
соглашение о передаче параметров функций Win API
обратный порядок занесения
в стек
вызываемая функция очищает стек