add yet another forgotten file
git-svn-id: svn://kolibrios.org@6701 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
35ce7d55f9
commit
9072ee806b
66
programs/export.inc
Normal file
66
programs/export.inc
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
|
||||||
|
; Macroinstruction for making export section
|
||||||
|
|
||||||
|
macro export dllname,[label,string]
|
||||||
|
{ common
|
||||||
|
local module,addresses,names,ordinal,count
|
||||||
|
count = 0
|
||||||
|
forward
|
||||||
|
count = count+1
|
||||||
|
common
|
||||||
|
dd 0,0,0,RVA module,1
|
||||||
|
dd count,count,RVA addresses,RVA names,RVA ordinal
|
||||||
|
addresses:
|
||||||
|
forward
|
||||||
|
dd RVA label
|
||||||
|
common
|
||||||
|
names:
|
||||||
|
forward
|
||||||
|
local name
|
||||||
|
dd RVA name
|
||||||
|
common
|
||||||
|
ordinal: count = 0
|
||||||
|
forward
|
||||||
|
dw count
|
||||||
|
count = count+1
|
||||||
|
common
|
||||||
|
module db dllname,0
|
||||||
|
forward
|
||||||
|
name db string,0
|
||||||
|
common
|
||||||
|
local x,y,z,str1,str2,v1,v2
|
||||||
|
x = count shr 1
|
||||||
|
while x > 0
|
||||||
|
y = x
|
||||||
|
while y < count
|
||||||
|
z = y
|
||||||
|
while z-x >= 0
|
||||||
|
load v1 dword from names+z*4
|
||||||
|
str1=($-RVA $)+v1
|
||||||
|
load v2 dword from names+(z-x)*4
|
||||||
|
str2=($-RVA $)+v2
|
||||||
|
while v1 > 0
|
||||||
|
load v1 from str1+%-1
|
||||||
|
load v2 from str2+%-1
|
||||||
|
if v1 <> v2
|
||||||
|
break
|
||||||
|
end if
|
||||||
|
end while
|
||||||
|
if v1<v2
|
||||||
|
load v1 dword from names+z*4
|
||||||
|
load v2 dword from names+(z-x)*4
|
||||||
|
store dword v1 at names+(z-x)*4
|
||||||
|
store dword v2 at names+z*4
|
||||||
|
load v1 word from ordinal+z*2
|
||||||
|
load v2 word from ordinal+(z-x)*2
|
||||||
|
store word v1 at ordinal+(z-x)*2
|
||||||
|
store word v2 at ordinal+z*2
|
||||||
|
else
|
||||||
|
break
|
||||||
|
end if
|
||||||
|
z = z-x
|
||||||
|
end while
|
||||||
|
y = y+1
|
||||||
|
end while
|
||||||
|
x = x shr 1
|
||||||
|
end while }
|
Loading…
Reference in New Issue
Block a user