汇编-用栈传递参数()

栈传递参数的原理

将需要传递的参数压入栈中,子程序从栈中取出参数

将需要传递的参数压入栈中,子程序从栈中取出参数

实例

assume cd:code
code segment
	
	start:
	mov ax,1
	push ax
	mov ax,3
	push ax
	call difcube ;注意压栈顺序
	mov 4C00H
	int 21H
	
	difcube:
	push bp
	mov bp,sp
	mov ax,[bp+4] ; 取出 3
	sub ax,[bp+6] ; 减去 1
	mov bp,ax
	mul bp
	pop bp
	ret 4
	; ret4 相当于
	; pop ip
	; add sp,4
code ends
end start
————————

栈传递参数的原理

将需要传递的参数压入栈中,子程序从栈中取出参数

将需要传递的参数压入栈中,子程序从栈中取出参数

实例

assume cd:code
code segment
	
	start:
	mov ax,1
	push ax
	mov ax,3
	push ax
	call difcube ;注意压栈顺序
	mov 4C00H
	int 21H
	
	difcube:
	push bp
	mov bp,sp
	mov ax,[bp+4] ; 取出 3
	sub ax,[bp+6] ; 减去 1
	mov bp,ax
	mul bp
	pop bp
	ret 4
	; ret4 相当于
	; pop ip
	; add sp,4
code ends
end start