blob: 4cd4bfe0013805a6c3aa0bfb5748322210620171 (
plain)
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
50
51
52
53
54
|
;; @file
; This is the ASM for Jump to a specific address.
;
; Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
;
; This program and the accompanying materials
; are licensed and made available under the terms and conditions of the BSD License
; which accompanies this distribution. The full text of the license may be found at
; http://opensource.org/licenses/bsd-license.php.
;
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED
;
;;
.686P
.MMX
.MODEL SMALL
.CODE
JumpToVector PROTO C \
EntryPoint:PTR DWORD, \
Parameter:DWORD
;
; Routine Description:
; This allows the caller to switch the stack and goes to the new entry point
;
; Arguments:
; EntryPoint - Pointer to the location to enter
; Parameter - Parameter to pass in
;
; Returns:
;
; Nothing. Goes to the Entry Point passing in the new parameters
;
JumpToVector PROC C \
EntryPoint:PTR DWORD, \
Parameter:DWORD
push ebx
mov ebx, Parameter
mov ecx, EntryPoint
push ebx
push 0
jmp ecx
pop ebx
ret
JumpToVector ENDP
END
|