wincall.asm
来自「开放源码的编译器open watcom 1.6.0版的源代码」· 汇编 代码 · 共 619 行 · 第 1/2 页
ASM
619 行
Callback 262
Callback 261
Callback 260
Callback 259
Callback 258
Callback 257
Callback 256
Callback 255
Callback 254
Callback 253
Callback 252
Callback 251
Callback 250
Callback 249
Callback 248
Callback 247
Callback 246
Callback 245
Callback 244
Callback 243
Callback 242
Callback 241
Callback 240
Callback 239
Callback 238
Callback 237
Callback 236
Callback 235
Callback 234
Callback 233
Callback 232
Callback 231
Callback 230
Callback 229
Callback 228
Callback 227
Callback 226
Callback 225
Callback 224
Callback 223
Callback 222
Callback 221
Callback 220
Callback 219
Callback 218
Callback 217
Callback 216
Callback 215
Callback 214
Callback 213
Callback 212
Callback 211
Callback 210
Callback 209
Callback 208
Callback 207
Callback 206
Callback 205
Callback 204
Callback 203
Callback 202
Callback 201
Callback 200
Callback 199
Callback 198
Callback 197
Callback 196
Callback 195
Callback 194
Callback 193
Callback 192
Callback 191
Callback 190
Callback 189
Callback 188
Callback 187
Callback 186
Callback 185
Callback 184
Callback 183
Callback 182
Callback 181
Callback 180
Callback 179
Callback 178
Callback 177
Callback 176
Callback 175
Callback 174
Callback 173
Callback 172
Callback 171
Callback 170
Callback 169
Callback 168
Callback 167
Callback 166
Callback 165
Callback 164
Callback 163
Callback 162
Callback 161
Callback 160
Callback 159
Callback 158
Callback 157
Callback 156
Callback 155
Callback 154
Callback 153
Callback 152
Callback 151
Callback 150
Callback 149
Callback 148
Callback 147
Callback 146
Callback 145
Callback 144
Callback 143
Callback 142
Callback 141
Callback 140
Callback 139
Callback 138
Callback 137
Callback 136
Callback 135
Callback 134
Callback 133
Callback 132
Callback 131
Callback 130
Callback 129
Callback 128
Callback 127
Callback 126
Callback 125
Callback 124
Callback 123
Callback 122
Callback 121
Callback 120
Callback 119
Callback 118
Callback 117
Callback 116
Callback 115
Callback 114
Callback 113
Callback 112
Callback 111
Callback 110
Callback 109
Callback 108
Callback 107
Callback 106
Callback 105
Callback 104
Callback 103
Callback 102
Callback 101
Callback 100
Callback 99
Callback 98
Callback 97
Callback 96
Callback 95
Callback 94
Callback 93
Callback 92
Callback 91
Callback 90
Callback 89
Callback 88
Callback 87
Callback 86
Callback 85
Callback 84
Callback 83
Callback 82
Callback 81
Callback 80
Callback 79
Callback 78
Callback 77
Callback 76
Callback 75
Callback 74
Callback 73
Callback 72
Callback 71
Callback 70
Callback 69
Callback 68
Callback 67
Callback 66
Callback 65
Callback 64
Callback 63
Callback 62
Callback 61
Callback 60
Callback 59
Callback 58
Callback 57
Callback 56
Callback 55
Callback 54
Callback 53
Callback 52
Callback 51
Callback 50
Callback 49
Callback 48
Callback 47
Callback 46
Callback 45
Callback 44
Callback 43
Callback 42
Callback 41
Callback 40
Callback 39
Callback 38
Callback 37
Callback 36
Callback 35
Callback 34
Callback 33
Callback 32
Callback 31
Callback 30
Callback 29
Callback 28
Callback 27
Callback 26
Callback 25
Callback 24
Callback 23
Callback 22
Callback 21
Callback 20
Callback 19
Callback 18
Callback 17
Callback 16
Callback 15
Callback 14
Callback 13
Callback 12
Callback 11
Callback 10
Callback 9
Callback 8
Callback 7
Callback 6
Callback 5
Callback 4
Callback 3
Callback 2
Callback 1
public __CallBack_
__CallBack_ proc near
pop DX ; get return address
inc BP ; standard Windows prolog
push BP ; ...
mov BP,SP ; ... get access to parms
push DS ; save DS
ifdef DLL32
mov AX,DGROUP
mov DS,AX ; get access to DGROUP
else
push SS ; SS points to DGROUP
pop DS ; set DS to DGROUP
endif
mov AX,offset __CallBack_-1 ; calc. callback index
sub AX,DX ; ...
mov DX,AX ; ...
mov AX,SS ; get 16-bit stack selector
mov word ptr _EntryStackSave,SP ; save current sp
mov word ptr _EntryStackSave+2,SS ; save stack segment
mov ES,_DataSelector ; get 32-bit data selector
mov SS,_StackSelector ; switch to 32-bit stack
mov ESP,_SaveSP ; ...
push _EntryStackSave ; save 16-bit SS:SP on 32-bit stack
call __32BitCallBackAddr ; go over to 32-bit side
lea ECX,4[ESP] ; calc. value for 32-bit stack pointer
mov _SaveSP,ECX ; save 32-bit stack pointer 22-nov-93
lss SP,[ESP] ; switch back to 16-bit stack
pop DS ; restore DS
pop BP ; restore BP
dec BP ; ...
pop BX ; get return address
pop CX ; ...
mov DH,0 ; zero high byte of stack adjustment
add SP,DX ; adjust stack pointer
push CX ; push return address
push BX ; ...
push EAX ; push return value
pop AX ; pop return value into DX:AX
pop DX ; ...
retf ; return
__CallBack_ endp
_TEXT ends
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?