forked from KolibriOS/kolibrios
09488af869
git-svn-id: svn://kolibrios.org@4867 a494cfbc-eb01-0410-851d-a64ba20cac60
4076 lines
62 KiB
Plaintext
4076 lines
62 KiB
Plaintext
ZZ=D0 ( Žá®¢ë¥ ¨§ª®ã஢¥¢ë¥ á«®¢ "ä®àâ-¯à®æ¥áá®à "
|
||
Copyright [C] 1992-1999 A.Cherezov ac@forth.org
|
||
<20>८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££
|
||
<20>¥¢¨§¨ï - á¥âï¡àì 1999
|
||
)
|
||
|
||
( <20>¥ «¨§ æ¨ï ¤«ï ¯®¤¯à®£à ¬¬®£® è¨â®£® ª®¤ .
|
||
ESP - 㪠§ ⥫ì á⥪ ¢®§¢à ⮢
|
||
EBP - 㪠§ ⥫ì á⥪ ¤ ëå
|
||
EDI - á®åà ï¥¬ë© à¥£¨áâà [㪠§ â¥«ì ¤ ëå ¯®â®ª ¢ SPF]
|
||
)
|
||
|
||
HEX
|
||
|
||
\ ================================================================
|
||
\ ‘⥪®¢ë¥ ¬ ¨¯ã«ï樨
|
||
|
||
?HS
|
||
|
||
Code DUP ;( x -- x x ) \ 94
|
||
|
||
59CB58 70 CB 59 00 00 03 44 55 50 E1 32 58 00 00 00 00 pËY...DUPá2X....
|
||
59CB68 00 00 00 00 00 00 00 00 ........
|
||
|
||
; <20>த㡫¨à®¢ âì x.
|
||
LEA EBP, [EBP-4]
|
||
|
||
59CB70 8D 6D FC <20>mü
|
||
|
||
mov [ebp],eax
|
||
|
||
59CB73 89 45 00 ‰E.
|
||
|
||
RET
|
||
|
||
59CB76 C3 Ã
|
||
|
||
EndCode
|
||
|
||
|
||
\ ' DUP TO 'DUP_V
|
||
|
||
Code ?DUP ;( x -- 0 | x x ) \ 94
|
||
|
||
59CB77 90 CB 59 00 00 04 3F 44 55 50 5D CB 59 00 00 00 <20>ËY...?DUP]ËY...
|
||
59CB87 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; <20>த㡫¨à®¢ âì x, ¥á«¨ ¥ ®«ì.
|
||
OR EAX, EAX
|
||
|
||
59CB90 0B C0 .À
|
||
|
||
JNZ { ' DUP }
|
||
|
||
59CB92 75 DC uÜ
|
||
|
||
RET
|
||
|
||
59CB94 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2DUP ;( x1 x2 -- x1 x2 x1 x2 ) \ 94
|
||
|
||
59CB95 B0 CB 59 00 00 04 32 44 55 50 7C CB 59 00 00 00 °ËY...2DUP|ËY...
|
||
59CBA5 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; <20>த㡫¨à®¢ âì ¯ àã ï祥ª x1 x2.
|
||
MOV EDX, [EBP]
|
||
|
||
59CBB0 8B 55 00 ‹U.
|
||
|
||
MOV [EBP-4], EAX
|
||
|
||
59CBB3 89 45 FC ‰Eü
|
||
|
||
MOV [EBP-8], EDX
|
||
|
||
59CBB6 89 55 F8 ‰Uø
|
||
|
||
LEA EBP, [EBP-8]
|
||
|
||
59CBB9 8D 6D F8 <20>mø
|
||
|
||
RET
|
||
|
||
59CBBC C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code DROP ;( x -- ) \ 94
|
||
|
||
59CBBD D0 CB 59 00 00 04 44 52 4F 50 9A CB 59 00 00 00 ÐËY...DROPšËY...
|
||
59CBCD 00 00 00 ...
|
||
|
||
; “¡à âì x á® á⥪ .
|
||
mov eax,[ebp]
|
||
|
||
59CBD0 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59CBD3 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59CBD6 C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ' DROP TO 'DROP_V
|
||
|
||
Code MAX ;( n1 n2 -- n3 ) \ 94
|
||
|
||
59CBD7 F0 CB 59 00 00 03 4D 41 58 C2 CB 59 00 00 00 00 ðËY...MAXÂËY....
|
||
59CBE7 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; n3 - ¡®«ì襥 ¨§ n1 ¨ n2.
|
||
CMP EAX, [EBP]
|
||
|
||
59CBF0 3B 45 00 ;E.
|
||
|
||
JL { ' DROP }
|
||
|
||
59CBF3 7C DB |Û
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59CBF5 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59CBF8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code MIN ;( n1 n2 -- n3 ) \ 94
|
||
|
||
59CBF9 10 CC 59 00 00 03 4D 49 4E DC CB 59 00 00 00 00 .ÌY...MINÜËY....
|
||
59CC09 00 00 00 00 00 00 00 .......
|
||
|
||
; n3 - ¬¥ì襥 ¨§ n1 ¨ n2.
|
||
CMP EAX, [EBP]
|
||
|
||
59CC10 3B 45 00 ;E.
|
||
|
||
JG { ' DROP }
|
||
|
||
59CC13 7F BB »
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59CC15 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59CC18 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code UMAX ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and
|
||
|
||
59CC19 30 CC 59 00 00 04 55 4D 41 58 FE CB 59 00 00 00 0ÌY...UMAXþËY...
|
||
59CC29 00 00 00 00 00 00 00 .......
|
||
|
||
; unsigned u2
|
||
CMP EAX, [EBP]
|
||
|
||
59CC30 3B 45 00 ;E.
|
||
|
||
JB { ' DROP }
|
||
|
||
59CC33 72 9B r›
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59CC35 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59CC38 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code UMIN ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and
|
||
|
||
59CC39 50 CC 59 00 00 04 55 4D 49 4E 1E CC 59 00 00 00 PÌY...UMIN.ÌY...
|
||
59CC49 00 00 00 00 00 00 00 .......
|
||
|
||
; unsigned u2
|
||
CMP EAX, [EBP]
|
||
|
||
59CC50 3B 45 00 ;E.
|
||
|
||
JA { ' DROP }
|
||
|
||
59CC53 0F 87 77 FF FF FF .‡wÿÿÿ
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59CC59 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59CC5C C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2DROP ;( x1 x2 -- ) \ 94
|
||
|
||
59CC5D 70 CC 59 00 00 05 32 44 52 4F 50 3E CC 59 00 00 pÌY...2DROP>ÌY..
|
||
59CC6D 00 00 00 ...
|
||
|
||
; “¡à âì á® á⥪ ¯ àã ï祥ª x1 x2.
|
||
MOV EAX , [EBP+4]
|
||
|
||
59CC70 8B 45 04 ‹E.
|
||
|
||
ADD EBP , 8
|
||
|
||
59CC73 83 C5 08 ā.
|
||
|
||
RET
|
||
|
||
59CC76 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code SWAP ;( x1 x2 -- x2 x1 ) \ 94
|
||
|
||
59CC77 90 CC 59 00 00 04 53 57 41 50 62 CC 59 00 00 00 <20>ÌY...SWAPbÌY...
|
||
59CC87 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; ¯®¬¥ïâì ¬¥áâ ¬¨ ¤¢ ¢¥àå¨å í«¥¬¥â á⥪
|
||
; XCHG EAX { EBP }
|
||
MOV EDX, [EBP]
|
||
|
||
59CC90 8B 55 00 ‹U.
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59CC93 89 45 00 ‰E.
|
||
|
||
MOV EAX, EDX
|
||
|
||
59CC96 8B C2 ‹Â
|
||
|
||
RET
|
||
|
||
59CC98 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2SWAP ;( x1 x2 x3 x4 -- x3 x4 x1 x2 ) \ 94
|
||
|
||
59CC99 B0 CC 59 00 00 05 32 53 57 41 50 7C CC 59 00 00 °ÌY...2SWAP|ÌY..
|
||
59CCA9 00 00 00 00 00 00 00 .......
|
||
|
||
; <20>®¬¥ïâì ¬¥áâ ¬¨ ¤¢¥ ¢¥à娥 ¯ àë ï祥ª.
|
||
MOV ECX, [EBP]
|
||
|
||
59CCB0 8B 4D 00 ‹M.
|
||
|
||
MOV EBX, [EBP+4]
|
||
|
||
59CCB3 8B 5D 04 ‹].
|
||
|
||
MOV EDX, [EBP+8]
|
||
|
||
59CCB6 8B 55 08 ‹U.
|
||
|
||
MOV [EBP+8], ECX
|
||
|
||
59CCB9 89 4D 08 ‰M.
|
||
|
||
MOV [EBP+4], EAX
|
||
|
||
59CCBC 89 45 04 ‰E.
|
||
|
||
MOV [EBP], EDX
|
||
|
||
59CCBF 89 55 00 ‰U.
|
||
|
||
MOV EAX, EBX
|
||
|
||
59CCC2 8B C3 ‹Ã
|
||
|
||
RET
|
||
|
||
59CCC4 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code OVER ;( x1 x2 -- x1 x2 x1 ) \ 94
|
||
|
||
59CCC5 E0 CC 59 00 00 04 4F 56 45 52 9E CC 59 00 00 00 àÌY...OVERžÌY...
|
||
59CCD5 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; <20>®«®¦¨âì ª®¯¨î x1 ¢¥àè¨ã á⥪ .
|
||
LEA EBP, [EBP-4]
|
||
|
||
59CCE0 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59CCE3 89 45 00 ‰E.
|
||
|
||
MOV EAX, [EBP+4]
|
||
|
||
59CCE6 8B 45 04 ‹E.
|
||
|
||
RET
|
||
|
||
59CCE9 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2OVER ;( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) \ 94
|
||
|
||
59CCEA 00 CD 59 00 00 05 32 4F 56 45 52 CA CC 59 00 00 .ÍY...2OVERÊÌY..
|
||
59CCFA 00 00 00 00 00 00 ......
|
||
|
||
; Š®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 ¢¥àè¨ã á⥪ .
|
||
MOV EDX, [EBP+8]
|
||
|
||
59CD00 8B 55 08 ‹U.
|
||
|
||
MOV [EBP-4], EAX
|
||
|
||
59CD03 89 45 FC ‰Eü
|
||
|
||
MOV [EBP-8], EDX
|
||
|
||
59CD06 89 55 F8 ‰Uø
|
||
|
||
MOV EAX, [EBP+4]
|
||
|
||
59CD09 8B 45 04 ‹E.
|
||
|
||
LEA EBP, [EBP-8]
|
||
|
||
59CD0C 8D 6D F8 <20>mø
|
||
|
||
RET
|
||
|
||
59CD0F C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code NIP ;( x1 x2 -- x2 ) \ 94 CORE EXT
|
||
|
||
59CD10 20 CD 59 00 00 03 4E 49 50 EF CC 59 00 00 00 00 ÍY...NIPïÌY....
|
||
|
||
; “¡à âì ¯¥à¢ë© í«¥¬¥â ¯®¤ ¢¥à訮© á⥪ .
|
||
ADD EBP, 4
|
||
|
||
59CD20 83 C5 04 ā.
|
||
|
||
RET
|
||
|
||
59CD23 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code ROT ;( x1 x2 x3 -- x2 x3 x1 ) \ 94
|
||
|
||
59CD24 40 CD 59 00 00 03 52 4F 54 15 CD 59 00 00 00 00 @ÍY...ROT.ÍY....
|
||
59CD34 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
; <20>பàãâ¨âì âਠ¢¥àå¨å í«¥¬¥â á⥪ .
|
||
; XCHG EAX [EBP]
|
||
; XCHG EAX 4 [EBP]
|
||
MOV EDX, [EBP]
|
||
|
||
59CD40 8B 55 00 ‹U.
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59CD43 89 45 00 ‰E.
|
||
|
||
MOV EAX, [EBP+4]
|
||
|
||
59CD46 8B 45 04 ‹E.
|
||
|
||
MOV [EBP+4], EDX
|
||
|
||
59CD49 89 55 04 ‰U.
|
||
|
||
RET
|
||
|
||
59CD4C C3 Ã
|
||
|
||
EndCode
|
||
|
||
|
||
Code -ROT ;( x1 x2 x3 -- x3 x1 x2 ) ; !!!!!
|
||
|
||
59CD4D 60 CD 59 00 00 04 2D 52 4F 54 29 CD 59 00 00 00 `ÍY...-ROT)ÍY...
|
||
59CD5D 00 00 00 ...
|
||
|
||
; Ž¡à ⮥ ROT
|
||
MOV EDX, [EBP+4]
|
||
|
||
59CD60 8B 55 04 ‹U.
|
||
|
||
MOV [EBP+4], EAX
|
||
|
||
59CD63 89 45 04 ‰E.
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59CD66 8B 45 00 ‹E.
|
||
|
||
MOV [EBP], EDX
|
||
|
||
59CD69 89 55 00 ‰U.
|
||
|
||
RET
|
||
|
||
59CD6C C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code PICK ;( ... +n -- ... w ) \ Copy the nth stack item to tos.
|
||
|
||
59CD6D 80 CD 59 00 00 04 50 49 43 4B 52 CD 59 00 00 00 €ÍY...PICKRÍY...
|
||
59CD7D 00 00 00 ...
|
||
|
||
MOV EAX, [EBP + EAX*4 ]
|
||
|
||
59CD80 8B 44 85 00 ‹D….
|
||
|
||
RET
|
||
|
||
59CD84 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code ROLL ;( xu xu-1 ... x0 u -- xu-1 ... x0 xu ) \ 94 CORE EXT
|
||
|
||
59CD85 A0 CD 59 00 00 04 52 4F 4C 4C 72 CD 59 00 00 00 ÍY...ROLLrÍY...
|
||
59CD95 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; “¡à âì u. <20>®¢¥àãâì u+1 í«¥¬¥â ¢¥à訥 á⥪ .
|
||
; <20>¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯¥à¥¤ ¢ë¯®«¥¨¥¬ ROLL
|
||
; á⥪¥ ¬¥ìè¥ ç¥¬ u+2 í«¥¬¥â®¢.
|
||
OR EAX, EAX
|
||
|
||
59CDA0 0B C0 .À
|
||
|
||
JZ SHORT LL1
|
||
|
||
59CDA2 74 1E t.
|
||
|
||
MOV ECX, EAX
|
||
|
||
59CDA4 8B C8 ‹È
|
||
|
||
LEA EAX, [EAX*4]
|
||
|
||
59CDA6 8D 04 85 00 00 00 00 <20>.…....
|
||
|
||
MOV EDX, EBP
|
||
|
||
59CDAD 8B D5 ‹Õ
|
||
|
||
ADD EDX, EAX
|
||
|
||
59CDAF 03 D0 .Ð
|
||
|
||
MOV EBX, [EDX]
|
||
|
||
59CDB1 8B 1A ‹.
|
||
|
||
LL2: LEA EDX, [EDX-4]
|
||
|
||
59CDB3 8D 52 FC <20>Rü
|
||
|
||
MOV EAX, [EDX]
|
||
|
||
59CDB6 8B 02 ‹.
|
||
|
||
MOV [EDX+4], EAX
|
||
|
||
59CDB8 89 42 04 ‰B.
|
||
|
||
DEC ECX
|
||
|
||
59CDBB 49 I
|
||
|
||
JNZ SHORT LL2
|
||
|
||
59CDBC 75 F5 uõ
|
||
|
||
MOV EAX, EBX
|
||
|
||
59CDBE 8B C3 ‹Ã
|
||
|
||
JMP SHORT LL3
|
||
|
||
59CDC0 EB 03 ë.
|
||
|
||
LL1: MOV EAX, [EBP]
|
||
|
||
59CDC2 8B 45 00 ‹E.
|
||
|
||
LL3: LEA EBP, [EBP+4]
|
||
|
||
59CDC5 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59CDC8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code TUCK ;( x1 x2 -- x2 x1 x2 ) \ 94
|
||
|
||
59CDC9 E0 CD 59 00 00 04 54 55 43 4B 8A CD 59 00 00 00 àÍY...TUCKŠÍY...
|
||
59CDD9 00 00 00 00 00 00 00 .......
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59CDE0 8D 6D FC <20>mü
|
||
|
||
MOV EDX, [EBP+4]
|
||
|
||
59CDE3 8B 55 04 ‹U.
|
||
|
||
MOV [EBP], EDX
|
||
|
||
59CDE6 89 55 00 ‰U.
|
||
|
||
MOV [EBP+4], EAX
|
||
|
||
59CDE9 89 45 04 ‰E.
|
||
|
||
RET
|
||
|
||
59CDEC C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ ‘⥪ ¢®§¢à ⮢
|
||
|
||
Code 2>R ; 94 CORE EXT
|
||
|
||
59CDED 00 CE 59 00 00 03 32 3E 52 CE CD 59 00 00 00 00 .ÎY...2>RÎÍY....
|
||
59CDFD 00 00 00 ...
|
||
|
||
; ˆâ¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ .
|
||
; ‚믮«¥¨¥: ;( x1 x2 -- ) ;( R: -- x1 x2 )
|
||
; <20>¥à¥¥á⨠¯ àã ï祥ª x1 x2 á⥪ ¢®§¢à ⮢. ‘¥¬ â¨ç¥áª¨
|
||
; íª¢¨¢ «¥â® SWAP >R >R.
|
||
POP EBX
|
||
|
||
59CE00 5B [
|
||
|
||
PUSH DWORD PTR [EBP]
|
||
|
||
59CE01 FF 75 00 ÿu.
|
||
|
||
PUSH EAX
|
||
|
||
59CE04 50 P
|
||
|
||
LEA EBP, [EBP+8]
|
||
|
||
59CE05 8D 6D 08 <20>m.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59CE08 8B 45 FC ‹Eü
|
||
|
||
JMP EBX
|
||
|
||
59CE0B FF E3 ÿã
|
||
|
||
EndCode
|
||
|
||
Code 2R> ; 94 CORE EXT
|
||
|
||
59CE0D 20 CE 59 00 00 03 32 52 3E F2 CD 59 00 00 00 00 ÎY...2R>òÍY....
|
||
59CE1D 00 00 00 ...
|
||
|
||
; ˆâ¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ .
|
||
; ‚믮«¥¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- )
|
||
; <20>¥à¥¥á⨠¯ àã ï祥ª x1 x2 á® á⥪ ¢®§¢à ⮢. ‘¥¬ â¨ç¥áª¨
|
||
; íª¢¨¢ «¥â® R> R> SWAP. \ !!!!
|
||
LEA EBP, [EBP-8]
|
||
|
||
59CE20 8D 6D F8 <20>mø
|
||
|
||
POP EBX
|
||
|
||
59CE23 5B [
|
||
|
||
MOV [EBP+4], EAX
|
||
|
||
59CE24 89 45 04 ‰E.
|
||
|
||
POP EAX
|
||
|
||
59CE27 58 X
|
||
|
||
POP DWORD PTR [EBP]
|
||
|
||
59CE28 8F 45 00 <20>E.
|
||
|
||
PUSH EBX
|
||
|
||
59CE2B 53 S
|
||
|
||
RET
|
||
|
||
59CE2C C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code R@ ; 94
|
||
|
||
59CE2D 40 CE 59 00 00 02 52 40 12 CE 59 00 00 00 00 00 @ÎY...R@.ÎY.....
|
||
59CE3D 00 00 00 ...
|
||
|
||
; ˆá¯®«¥¨¥: ;( -- x ) ;( R: x -- x )
|
||
; ˆâ¥à¯à¥â æ¨ï: ᥬ ⨪ ¢ ०¨¬¥ ¨â¥à¯à¥â 樨 ¥®¯à¥¤¥«¥ .
|
||
LEA EBP, [EBP-4]
|
||
|
||
59CE40 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59CE43 89 45 00 ‰E.
|
||
|
||
MOV EAX, [ESP + 4 ]
|
||
|
||
59CE46 8B 44 24 04 ‹D$.
|
||
|
||
RET
|
||
|
||
59CE4A C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2R@ ; 94 CORE EXT
|
||
|
||
59CE4B 60 CE 59 00 00 03 32 52 40 32 CE 59 00 00 00 00 `ÎY...2R@2ÎY....
|
||
59CE5B 00 00 00 00 00 .....
|
||
|
||
; ˆâ¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ .
|
||
; ‚믮«¥¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- x1 x2 )
|
||
; Š®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 á® á⥪ ¢®§¢à ⮢. ‘¥¬ â¨ç¥áª¨
|
||
; íª¢¨¢ «¥â® R> R> 2DUP >R >R SWAP.
|
||
LEA EBP, [EBP-8]
|
||
|
||
59CE60 8D 6D F8 <20>mø
|
||
|
||
MOV [EBP+4], EAX
|
||
|
||
59CE63 89 45 04 ‰E.
|
||
|
||
MOV EAX, [ESP + { 2 CELLS } ]
|
||
|
||
59CE66 8B 44 24 08 ‹D$.
|
||
|
||
MOV DWORD PTR [EBP], EAX
|
||
|
||
59CE6A 89 45 00 ‰E.
|
||
|
||
MOV EAX, [ESP + 4 ]
|
||
|
||
59CE6D 8B 44 24 04 ‹D$.
|
||
|
||
RET
|
||
|
||
59CE71 C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ Ž¯¥à 樨 á ¯ ¬ïâìî
|
||
|
||
Code @ ;( a-addr -- x ) \ 94
|
||
|
||
59CE72 80 CE 59 00 00 01 40 50 CE 59 00 00 00 00 €ÎY...@PÎY....
|
||
|
||
; x - § 票¥ ¯® ¤à¥áã a-addr.
|
||
MOV EAX, [EAX ]
|
||
|
||
59CE80 8B 00 ‹.
|
||
|
||
RET
|
||
|
||
59CE82 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code ! ;( x a-addr -- ) \ 94
|
||
|
||
59CE83 90 CE 59 00 00 01 21 77 CE 59 00 00 00 <20>ÎY...!wÎY...
|
||
|
||
; ‡ ¯¨á âì x ¯® ¤à¥áã a-addr.
|
||
MOV EDX, [EBP]
|
||
|
||
59CE90 8B 55 00 ‹U.
|
||
|
||
MOV DWORD PTR [EAX ], EDX
|
||
|
||
59CE93 89 10 ‰.
|
||
|
||
MOV EAX , [EBP+4]
|
||
|
||
59CE95 8B 45 04 ‹E.
|
||
|
||
ADD EBP , 8
|
||
|
||
59CE98 83 C5 08 ā.
|
||
|
||
RET
|
||
|
||
59CE9B C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C@ ;( c-addr -- char ) \ 94
|
||
|
||
59CE9C B0 CE 59 00 00 02 43 40 88 CE 59 00 00 00 00 00 °ÎY...C@ˆÎY.....
|
||
59CEAC 00 00 00 00 ....
|
||
|
||
; <20>®«ãç¨âì ᨬ¢®« ¯® ¤à¥áã c-addr. <20>¥§ ç 騥 áâ à訥 ¡¨âë ï祩ª¨ ã«¥¢ë¥.
|
||
MOVZX EAX, BYTE PTR [EAX ]
|
||
|
||
59CEB0 0F B6 00 .¶.
|
||
|
||
RET
|
||
|
||
59CEB3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C! ;( char c-addr -- ) \ 94
|
||
|
||
59CEB4 C0 CE 59 00 00 02 43 21 A1 CE 59 00 ÀÎY...C!¡ÎY.
|
||
|
||
; ‡ ¯¨á âì char ¯® ¤à¥áã a-addr.
|
||
MOV EDX, [EBP]
|
||
|
||
59CEC0 8B 55 00 ‹U.
|
||
|
||
MOV BYTE PTR [EAX ], DL
|
||
|
||
59CEC3 88 10 ˆ.
|
||
|
||
MOV EAX , [EBP+4]
|
||
|
||
59CEC5 8B 45 04 ‹E.
|
||
|
||
ADD EBP , 8
|
||
|
||
59CEC8 83 C5 08 ā.
|
||
|
||
RET
|
||
|
||
59CECB C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code W@ ;( c-addr -- word )
|
||
|
||
59CECC E0 CE 59 00 00 02 57 40 B9 CE 59 00 00 00 00 00 àÎY...W@¹ÎY.....
|
||
59CEDC 00 00 00 00 ....
|
||
|
||
; <20>®«ãç¨âì word ¯® ¤à¥áã c-addr. <20>¥§ ç 騥 áâ à訥 ¡¨âë ï祩ª¨ ã«¥¢ë¥.
|
||
MOVZX EAX, WORD PTR [EAX ]
|
||
|
||
59CEE0 0F B7 00 .·.
|
||
|
||
RET
|
||
|
||
59CEE3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code W! ;( word c-addr -- )
|
||
|
||
59CEE4 F0 CE 59 00 00 02 57 21 D1 CE 59 00 ðÎY...W!ÑÎY.
|
||
|
||
; ‡ ¯¨á âì word ¯® ¤à¥áã a-addr.
|
||
MOV EDX, [EBP]
|
||
|
||
59CEF0 8B 55 00 ‹U.
|
||
|
||
MOV WORD PTR [EAX ], DX
|
||
|
||
59CEF3 66 89 10 f‰.
|
||
|
||
MOV EAX , [EBP+4]
|
||
|
||
59CEF6 8B 45 04 ‹E.
|
||
|
||
ADD EBP , 8
|
||
|
||
59CEF9 83 C5 08 ā.
|
||
|
||
RET
|
||
|
||
59CEFC C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2@ ;( a-addr -- x1 x2 ) \ 94
|
||
|
||
59CEFD 10 CF 59 00 00 02 32 40 E9 CE 59 00 00 00 00 00 .ÏY...2@éÎY.....
|
||
59CF0D 00 00 00 ...
|
||
|
||
; <20>®«ãç¨âì ¯ àã ï祥ª x1 x2, § ¯¨á ãî ¯® ¤à¥áã a-addr.
|
||
; x2 ¯® ¤à¥áã a-addr, x1 ¢ á«¥¤ãî饩 ï祩ª¥.
|
||
; <20> ¢®á¨«ì® DUP CELL+ @ SWAP @
|
||
MOV EDX, [EAX + 4 ]
|
||
|
||
59CF10 8B 50 04 ‹P.
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59CF13 8D 6D FC <20>mü
|
||
|
||
MOV DWORD PTR [EBP], EDX
|
||
|
||
59CF16 89 55 00 ‰U.
|
||
|
||
MOV EAX, DWORD PTR [EAX ]
|
||
|
||
59CF19 8B 00 ‹.
|
||
|
||
RET
|
||
|
||
59CF1B C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2! ;( x1 x2 a-addr -- ) \ 94
|
||
|
||
59CF1C 30 CF 59 00 00 02 32 21 02 CF 59 00 00 00 00 00 0ÏY...2!.ÏY.....
|
||
59CF2C 00 00 00 00 ....
|
||
|
||
; ‡ ¯¨á âì ¯ àã ï祥ª x1 x2 ¯® ¤à¥áã a-addr,
|
||
; x2 ¯® ¤à¥áã a-addr, x1 ¢ á«¥¤ãîéãî ï祩ªã.
|
||
; <20> ¢®á¨«ì® SWAP OVER ! CELL+ !
|
||
MOV EDX, [EBP]
|
||
|
||
59CF30 8B 55 00 ‹U.
|
||
|
||
MOV [EAX], EDX
|
||
|
||
59CF33 89 10 ‰.
|
||
|
||
MOV EDX, [EBP+4]
|
||
|
||
59CF35 8B 55 04 ‹U.
|
||
|
||
MOV [EAX+4], EDX
|
||
|
||
59CF38 89 50 04 ‰P.
|
||
|
||
LEA EBP, [EBP+0CH]
|
||
|
||
59CF3B 8D 6D 0C <20>m.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59CF3E 8B 45 FC ‹Eü
|
||
|
||
RET
|
||
|
||
59CF41 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D@ ;( a-addr -- x1 x2 )
|
||
|
||
59CF42 50 CF 59 00 00 02 44 40 21 CF 59 00 00 00 PÏY...D@!ÏY...
|
||
|
||
; 2@ SWAP
|
||
MOV EDX, [EAX]
|
||
|
||
59CF50 8B 10 ‹.
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59CF52 8D 6D FC <20>mü
|
||
|
||
MOV DWORD PTR [EBP], EDX
|
||
|
||
59CF55 89 55 00 ‰U.
|
||
|
||
MOV EAX, DWORD PTR [EAX+4]
|
||
|
||
59CF58 8B 40 04 ‹@.
|
||
|
||
RET
|
||
|
||
59CF5B C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D! ;( x1 x2 a-addr -- )
|
||
|
||
59CF5C 70 CF 59 00 00 02 44 21 47 CF 59 00 00 00 00 00 pÏY...D!GÏY.....
|
||
59CF6C 00 00 00 00 ....
|
||
|
||
; >R SWAP R> 2!
|
||
MOV EDX, [EBP]
|
||
|
||
59CF70 8B 55 00 ‹U.
|
||
|
||
MOV [EAX+4], EDX
|
||
|
||
59CF73 89 50 04 ‰P.
|
||
|
||
MOV EDX, [EBP+4]
|
||
|
||
59CF76 8B 55 04 ‹U.
|
||
|
||
MOV [EAX], EDX
|
||
|
||
59CF79 89 10 ‰.
|
||
|
||
LEA EBP, [EBP+0CH]
|
||
|
||
59CF7B 8D 6D 0C <20>m.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59CF7E 8B 45 FC ‹Eü
|
||
|
||
RET
|
||
|
||
59CF81 C3 Ã
|
||
|
||
EndCode
|
||
|
||
|
||
Code EBX@ ;( -- EBX )
|
||
|
||
59CF82 90 CF 59 00 00 04 45 42 58 40 61 CF 59 00 <20>ÏY...EBX@aÏY.
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59CF90 8D 6D FC <20>mü
|
||
|
||
mov [ebp],eax
|
||
|
||
59CF93 89 45 00 ‰E.
|
||
|
||
MOV EAX,EBX
|
||
|
||
59CF96 8B C3 ‹Ã
|
||
|
||
RET
|
||
|
||
59CF98 C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ ‚ëç¨á«¥¨ï
|
||
|
||
Code 1+ ;( n1|u1 -- n2|u2 ) \ 94
|
||
|
||
59CF99 B0 CF 59 00 00 02 31 2B 87 CF 59 00 00 00 00 00 °ÏY...1+‡ÏY.....
|
||
59CFA9 00 00 00 00 00 00 00 .......
|
||
|
||
; <20>ਡ ¢¨âì 1 ª n1|u1 ¨ ¯®«ãç¨âì á㬬ã u2|n2.
|
||
LEA EAX, [EAX+1]
|
||
|
||
59CFB0 8D 40 01 <20>@.
|
||
|
||
RET
|
||
|
||
59CFB3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 1- ;( n1|u1 -- n2|u2 ) \ 94
|
||
|
||
59CFB4 C0 CF 59 00 00 02 31 2D 9E CF 59 00 ÀÏY...1-žÏY.
|
||
|
||
; ‚ëç¥áâì 1 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §®áâì n2|u2.
|
||
LEA EAX, [EAX-1]
|
||
|
||
59CFC0 8D 40 FF <20>@ÿ
|
||
|
||
RET
|
||
|
||
59CFC3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2+ ;( W -> W+2 )
|
||
|
||
59CFC4 D0 CF 59 00 00 02 32 2B B9 CF 59 00 ÐÏY...2+¹ÏY.
|
||
|
||
LEA EAX, [EAX+2]
|
||
|
||
59CFD0 8D 40 02 <20>@.
|
||
|
||
RET
|
||
|
||
59CFD3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2- ;( W -> W-2 )
|
||
|
||
59CFD4 E0 CF 59 00 00 02 32 2D C9 CF 59 00 àÏY...2-ÉÏY.
|
||
|
||
LEA EAX, [EAX-2]
|
||
|
||
59CFE0 8D 40 FE <20>@þ
|
||
|
||
RET
|
||
|
||
59CFE3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2* ;( x1 -- x2 ) \ 94
|
||
|
||
59CFE4 F0 CF 59 00 00 02 32 2A D9 CF 59 00 ðÏY...2*ÙÏY.
|
||
|
||
; x2 - १ã«ìâ â ᤢ¨£ x1 ®¤¨ ¡¨â ¢«¥¢®, á § ¯®«¥¨¥¬
|
||
; ¨¬¥¥¥ § 稬®£® ¡¨â ã«¥¬.
|
||
; SHL EAX
|
||
; LEA EAX, [EAX+EAX]
|
||
LEA EAX, [EAX*2]
|
||
|
||
59CFF0 8D 04 45 00 00 00 00 <20>.E....
|
||
|
||
RET
|
||
|
||
59CFF7 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code CELL+ ;( a-addr1 -- a-addr2 ) \ 94
|
||
|
||
59CFF8 10 D0 59 00 00 05 43 45 4C 4C 2B E9 CF 59 00 00 .ÐY...CELL+éÏY..
|
||
59D008 00 00 00 00 00 00 00 00 ........
|
||
|
||
; ‚ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2.
|
||
LEA EAX, [EAX+4]
|
||
|
||
59D010 8D 40 04 <20>@.
|
||
|
||
RET
|
||
|
||
59D013 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code CELL- ;( a-addr1 -- a-addr2 ) \ 94
|
||
|
||
59D014 30 D0 59 00 00 05 43 45 4C 4C 2D FD CF 59 00 00 0ÐY...CELL-ýÏY..
|
||
59D024 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
; ‚ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2.
|
||
LEA EAX, [EAX-4]
|
||
|
||
59D030 8D 40 FC <20>@ü
|
||
|
||
RET
|
||
|
||
59D033 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code CELLS ;( n1 -- n2 ) \ 94
|
||
|
||
59D034 50 D0 59 00 00 05 43 45 4C 4C 53 19 D0 59 00 00 PÐY...CELLS.ÐY..
|
||
59D044 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
; n2 - à §¬¥à n1 ï祥ª.
|
||
LEA EAX, DWORD PTR [EAX *4 ]
|
||
|
||
59D050 8D 04 85 00 00 00 00 <20>.…....
|
||
|
||
RET
|
||
|
||
59D057 C3 Ã
|
||
|
||
EndCode
|
||
|
||
|
||
Code + ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
|
||
|
||
59D058 70 D0 59 00 00 01 2B 39 D0 59 00 00 00 00 00 00 pÐY...+9ÐY......
|
||
59D068 00 00 00 00 00 00 00 00 ........
|
||
|
||
; ‘«®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì á㬬ã n3|u3.
|
||
ADD EAX, DWORD PTR [EBP]
|
||
|
||
59D070 03 45 00 .E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D073 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D076 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D+ ;( d1|ud1 d2|ud2 -- d3|ud3 ) \ 94 DOUBLE
|
||
|
||
59D077 90 D0 59 00 00 02 44 2B 5D D0 59 00 00 00 00 00 <20>ÐY...D+]ÐY.....
|
||
59D087 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; ‘«®¦¨âì d1|ud1 ¨ d2|ud2 ¨ ¤ âì á㬬ã d3|ud3.
|
||
MOV EDX, DWORD PTR [EBP]
|
||
|
||
59D090 8B 55 00 ‹U.
|
||
|
||
ADD DWORD PTR [EBP + { 2 CELLS } ], EDX
|
||
|
||
59D093 01 55 08 .U.
|
||
|
||
ADC EAX, DWORD PTR [EBP +4 ]
|
||
|
||
59D096 13 45 04 .E.
|
||
|
||
LEA EBP, [EBP+8]
|
||
|
||
59D099 8D 6D 08 <20>m.
|
||
|
||
RET
|
||
|
||
59D09C C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D- ;( d1 d2 -- d3 ) \ 94 DOUBLE
|
||
|
||
59D09D B0 D0 59 00 00 02 44 2D 7C D0 59 00 00 00 00 00 °ÐY...D-|ÐY.....
|
||
59D0AD 00 00 00 ...
|
||
|
||
; perform a double subtract (64bit)
|
||
MOV EDX, DWORD PTR [EBP]
|
||
|
||
59D0B0 8B 55 00 ‹U.
|
||
|
||
SUB DWORD PTR [EBP + { 2 CELLS } ], EDX
|
||
|
||
59D0B3 29 55 08 )U.
|
||
|
||
SBB [EBP+4], EAX
|
||
|
||
59D0B6 19 45 04 .E.
|
||
|
||
MOV EAX, DWORD PTR [EBP +4 ]
|
||
|
||
59D0B9 8B 45 04 ‹E.
|
||
|
||
LEA EBP, [EBP+8]
|
||
|
||
59D0BC 8D 6D 08 <20>m.
|
||
|
||
RET
|
||
|
||
59D0BF C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code - ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
|
||
|
||
59D0C0 D0 D0 59 00 00 01 2D A2 D0 59 00 00 00 00 00 00 ÐÐY...-¢ÐY......
|
||
|
||
; ‚ëç¥áâì n2|u2 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §®áâì n3|u3.
|
||
NEG EAX
|
||
|
||
59D0D0 F7 D8 ֯
|
||
|
||
ADD EAX, [EBP]
|
||
|
||
59D0D2 03 45 00 .E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D0D5 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D0D8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 1+! ;( A -> )
|
||
|
||
59D0D9 F0 D0 59 00 00 03 31 2B 21 C5 D0 59 00 00 00 00 ðÐY...1+!ÅÐY....
|
||
59D0E9 00 00 00 00 00 00 00 .......
|
||
|
||
INC DWORD PTR [EAX ]
|
||
|
||
59D0F0 FF 00 ÿ.
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D0F2 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D0F5 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D0F8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 0! ;( A -> )
|
||
|
||
59D0F9 10 D1 59 00 00 02 30 21 DE D0 59 00 00 00 00 00 .ÑY...0!ÞÐY.....
|
||
59D109 00 00 00 00 00 00 00 .......
|
||
|
||
MOV DWORD PTR [EAX ], 0
|
||
|
||
59D110 C7 00 00 00 00 00 Ç.....
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D116 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D119 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D11C C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code COUNT ;( c-addr1 -- c-addr2 u ) \ 94
|
||
|
||
59D11D 30 D1 59 00 00 05 43 4F 55 4E 54 FE D0 59 00 00 0ÑY...COUNTþÐY..
|
||
59D12D 00 00 00 ...
|
||
|
||
; <20>®«ãç¨âì áâபã ᨬ¢®«®¢ ¨§ áâப¨ á® áç¥â稪®¬ c-addr1.
|
||
; c-addr2 - ¤à¥á ¯¥à¢®£® ᨬ¢®« § c-addr1.
|
||
; u - ᮤ¥à¦¨¬®¥ ¡ ©â c-addr1, ïî饥áï ¤«¨®© áâப¨ ᨬ¢®«®¢,
|
||
; ç¨ î饩áï á ¤à¥á c-addr2.
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D130 8D 6D FC <20>mü
|
||
|
||
LEA EDX, DWORD PTR [EAX +1 ]
|
||
|
||
59D133 8D 50 01 <20>P.
|
||
|
||
MOV DWORD PTR [EBP], EDX
|
||
|
||
59D136 89 55 00 ‰U.
|
||
|
||
MOVZX EAX, BYTE PTR [EAX ]
|
||
|
||
59D139 0F B6 00 .¶.
|
||
|
||
RET
|
||
|
||
59D13C C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code * ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
|
||
|
||
59D13D 50 D1 59 00 00 01 2A 22 D1 59 00 00 00 00 00 00 PÑY...*"ÑY......
|
||
59D14D 00 00 00 ...
|
||
|
||
; <20>¥à¥¬®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì ¯à®¨§¢¥¤¥¨¥ n3|u3.
|
||
IMUL DWORD PTR [EBP]
|
||
|
||
59D150 F7 6D 00 ÷m.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D153 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D156 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code AND ;( x1 x2 -- x3 ) \ 94
|
||
|
||
59D157 70 D1 59 00 00 03 41 4E 44 42 D1 59 00 00 00 00 pÑY...ANDBÑY....
|
||
59D167 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; x3 - ¯®¡¨â®¢®¥ "ˆ" x1 ¨ x2.
|
||
AND EAX, [EBP]
|
||
|
||
59D170 23 45 00 #E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D173 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D176 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code OR ;( x1 x2 -- x3 ) \ 94
|
||
|
||
59D177 90 D1 59 00 00 02 4F 52 5C D1 59 00 00 00 00 00 <20>ÑY...OR\ÑY.....
|
||
59D187 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; x3 - ¯®¡¨â®¢®¥ "ˆ‹ˆ" x1 ¨ x2.
|
||
OR EAX, [EBP]
|
||
|
||
59D190 0B 45 00 .E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D193 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D196 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code XOR ;( x1 x2 -- x3 ) \ 94
|
||
|
||
59D197 B0 D1 59 00 00 03 58 4F 52 7C D1 59 00 00 00 00 °ÑY...XOR|ÑY....
|
||
59D1A7 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; x3 - ¯®¡¨â®¢®¥ "¨áª«îç î饥 ˆ‹ˆ" x1 ¨ x2.
|
||
XOR EAX, [EBP]
|
||
|
||
59D1B0 33 45 00 3E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D1B3 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D1B6 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code INVERT ;( x1 -- x2 ) \ 94
|
||
|
||
59D1B7 D0 D1 59 00 00 06 49 4E 56 45 52 54 9C D1 59 00 ÐÑY...INVERTœÑY.
|
||
59D1C7 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
; ˆ¢¥àâ¨à®¢ âì ¢á¥ ¡¨âë x1 ¨ ¯®«ãç¨âì «®£¨ç¥áªãî ¨¢¥àá¨î x2.
|
||
NOT EAX
|
||
|
||
59D1D0 F7 D0 ÷Ð
|
||
|
||
RET
|
||
|
||
59D1D2 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code NEGATE ;( n1 -- n2 ) \ 94
|
||
|
||
59D1D3 F0 D1 59 00 00 06 4E 45 47 41 54 45 BC D1 59 00 ðÑY...NEGATE¼ÑY.
|
||
59D1E3 00 00 00 00 00 00 00 00 00 00 00 00 00 .............
|
||
|
||
; n2 - à¨ä¬¥â¨ç¥áª ï ¨¢¥àá¨ï n1.
|
||
NEG EAX
|
||
|
||
59D1F0 F7 D8 ֯
|
||
|
||
RET
|
||
|
||
59D1F2 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code ABS ;( n -- u ) \ 94
|
||
|
||
59D1F3 00 D2 59 00 00 03 41 42 53 D8 D1 59 00 .ÒY...ABSØÑY.
|
||
|
||
; u - ¡á®«îâ ï ¢¥«¨ç¨ n.
|
||
TEST EAX, EAX
|
||
|
||
59D200 85 C0 …À
|
||
|
||
JS { ' NEGATE }
|
||
|
||
59D202 78 EC xì
|
||
|
||
RET
|
||
|
||
59D204 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code DNEGATE ;( d1 -- d2 ) \ 94 DOUBLE
|
||
|
||
59D205 20 D2 59 00 00 07 44 4E 45 47 41 54 45 F8 D1 59 ÒY...DNEGATEøÑY
|
||
59D215 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; d2 १ã«ìâ â ¢ëç¨â ¨ï d1 ¨§ ã«ï.
|
||
MOV EDX, [EBP]
|
||
|
||
59D220 8B 55 00 ‹U.
|
||
|
||
NEG EAX
|
||
|
||
59D223 F7 D8 ֯
|
||
|
||
NEG EDX
|
||
|
||
59D225 F7 DA ÷Ú
|
||
|
||
SBB EAX, 0
|
||
|
||
59D227 83 D8 00 į.
|
||
|
||
MOV DWORD PTR [EBP], EDX
|
||
|
||
59D22A 89 55 00 ‰U.
|
||
|
||
RET
|
||
|
||
59D22D C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code NOOP ;( -> )
|
||
|
||
59D22E 40 D2 59 00 00 04 4E 4F 4F 50 0A D2 59 00 00 00 @ÒY...NOOP.ÒY...
|
||
59D23E 00 00 ..
|
||
|
||
RET
|
||
|
||
59D240 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code S>D ;( n -- d ) \ 94
|
||
|
||
59D241 50 D2 59 00 00 03 53 3E 44 33 D2 59 00 00 00 PÒY...S>D3ÒY...
|
||
|
||
; <20>८¡à §®¢ âì ç¨á«® n ¢ ¤¢®©®¥ ç¨á«® d á ⥬ ¦¥ ç¨á«®¢ë¬ § 票¥¬.
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D250 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D253 89 45 00 ‰E.
|
||
|
||
CDQ
|
||
|
||
59D256 99 ™
|
||
|
||
MOV EAX, EDX
|
||
|
||
59D257 8B C2 ‹Â
|
||
|
||
RET
|
||
|
||
59D259 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D>S ;( d -- n ) \ 94 DOUBLE
|
||
|
||
59D25A 70 D2 59 00 00 03 44 3E 53 46 D2 59 00 00 00 00 pÒY...D>SFÒY....
|
||
59D26A 00 00 00 00 00 00 ......
|
||
|
||
; n - íª¢¨¢ «¥â d.
|
||
; ˆáª«îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ d 室¨âáï ¢¥ ¤¨ ¯ §®
|
||
; § ª®¢ëå ®¤¨ àëå ç¨á¥«.
|
||
MOV EAX, [EBP]
|
||
|
||
59D270 8B 45 00 ‹E.
|
||
|
||
ADD EBP, 4
|
||
|
||
59D273 83 C5 04 ā.
|
||
|
||
RET
|
||
|
||
59D276 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code U>D ;( U -> D ) \ à áè¨à¨âì ç¨á«® ¤® ¤¢®©®© â®ç®á⨠㫥¬
|
||
|
||
59D277 90 D2 59 00 00 03 55 3E 44 5F D2 59 00 00 00 00 <20>ÒY...U>D_ÒY....
|
||
59D287 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D290 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D293 89 45 00 ‰E.
|
||
|
||
XOR EAX, EAX
|
||
|
||
59D296 33 C0 3À
|
||
|
||
RET
|
||
|
||
59D298 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C>S ;( c -- n ) \ à áè¨à¨âì CHAR
|
||
|
||
59D299 B0 D2 59 00 00 03 43 3E 53 7C D2 59 00 00 00 00 °ÒY...C>S|ÒY....
|
||
59D2A9 00 00 00 00 00 00 00 .......
|
||
|
||
MOVSX EAX, AL
|
||
|
||
59D2B0 0F BE C0 .¾À
|
||
|
||
RET
|
||
|
||
59D2B3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code UM* ;( u1 u2 -- ud ) \ 94
|
||
|
||
59D2B4 D0 D2 59 00 00 03 55 4D 2A 9E D2 59 00 00 00 00 ÐÒY...UM*žÒY....
|
||
59D2C4 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
; ud - ¯à®¨§¢¥¤¥¨¥ u1 ¨ u2. ‚ᥠ§ ç¥¨ï ¨ à¨ä¬¥â¨ª ¡¥§§ ª®¢ë¥.
|
||
MUL DWORD PTR [EBP]
|
||
|
||
59D2D0 F7 65 00 ÷e.
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D2D3 89 45 00 ‰E.
|
||
|
||
MOV EAX, EDX
|
||
|
||
59D2D6 8B C2 ‹Â
|
||
|
||
RET
|
||
|
||
59D2D8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code / ;( n1 n2 -- n3 ) \ 94
|
||
|
||
59D2D9 F0 D2 59 00 00 01 2F B9 D2 59 00 00 00 00 00 00 ðÒY.../¹ÒY......
|
||
59D2E9 00 00 00 00 00 00 00 .......
|
||
|
||
; „¥«¨âì n1 n2, ¯®«ãç¨âì ç á⮥ n3.
|
||
; ˆáª«îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 à ¢¥ ã«î.
|
||
; …᫨ n1 ¨ n2 à §«¨ç îâáï ¯® § ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â
|
||
; ॠ«¨§ 樨.
|
||
MOV ECX, EAX
|
||
|
||
59D2F0 8B C8 ‹È
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D2F2 8B 45 00 ‹E.
|
||
|
||
CDQ
|
||
|
||
59D2F5 99 ™
|
||
|
||
IDIV ECX
|
||
|
||
59D2F6 F7 F9 ÷ù
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D2F8 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D2FB C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code U/ ;( W1, W2 -> W3 ) \ ¡¥§§ ª®¢®¥ ¤¥«¥¨¥ W1 W2
|
||
|
||
59D2FC 10 D3 59 00 00 02 55 2F DE D2 59 00 00 00 00 00 .ÓY...U/ÞÒY.....
|
||
59D30C 00 00 00 00 ....
|
||
|
||
MOV ECX, EAX
|
||
|
||
59D310 8B C8 ‹È
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D312 8B 45 00 ‹E.
|
||
|
||
XOR EDX, EDX
|
||
|
||
59D315 33 D2 3Ò
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D317 8D 6D 04 <20>m.
|
||
|
||
DIV ECX
|
||
|
||
59D31A F7 F1 ֖
|
||
|
||
RET
|
||
|
||
59D31C C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code +! ;( n|u a-addr -- ) \ 94 \ !!!!!
|
||
|
||
59D31D 30 D3 59 00 00 02 2B 21 01 D3 59 00 00 00 00 00 0ÓY...+!.ÓY.....
|
||
59D32D 00 00 00 ...
|
||
|
||
; <20>ਡ ¢¨âì n|u ª ®¤¨ ஬ã ç¨á«ã ¯® ¤à¥áã a-addr.
|
||
MOV EDX, [EBP]
|
||
|
||
59D330 8B 55 00 ‹U.
|
||
|
||
ADD DWORD PTR [EAX ], EDX
|
||
|
||
59D333 01 10 ..
|
||
|
||
MOV EAX, [EBP+4]
|
||
|
||
59D335 8B 45 04 ‹E.
|
||
|
||
LEA EBP, [EBP+8]
|
||
|
||
59D338 8D 6D 08 <20>m.
|
||
|
||
RET
|
||
|
||
59D33B C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code MOD ;( n1 n2 -- n3 ) \ 94
|
||
|
||
59D33C 50 D3 59 00 00 03 4D 4F 44 22 D3 59 00 00 00 00 PÓY...MOD"ÓY....
|
||
59D34C 00 00 00 00 ....
|
||
|
||
; „¥«¨âì n1 n2, ¯®«ãç¨âì ®áâ ⮪ n3.
|
||
; ˆáª«îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 à ¢¥ ã«î.
|
||
; …᫨ n1 ¨ n2 à §«¨ç îâáï ¯® § ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â
|
||
; ॠ«¨§ 樨.
|
||
MOV ECX, EAX
|
||
|
||
59D350 8B C8 ‹È
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D352 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D355 8D 6D 04 <20>m.
|
||
|
||
CDQ
|
||
|
||
59D358 99 ™
|
||
|
||
IDIV ECX
|
||
|
||
59D359 F7 F9 ÷ù
|
||
|
||
MOV EAX, EDX
|
||
|
||
59D35B 8B C2 ‹Â
|
||
|
||
RET
|
||
|
||
59D35D C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code /MOD ;( n1 n2 -- n3 n4 ) \ 94
|
||
|
||
59D35E 70 D3 59 00 00 04 2F 4D 4F 44 41 D3 59 00 00 00 pÓY.../MODAÓY...
|
||
59D36E 00 00 ..
|
||
|
||
; „¥«¨âì n1 n2, ¤ âì ®áâ ⮪ n3 ¨ ç á⮥ n4.
|
||
; <20>¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 ã«ì.
|
||
MOV ECX, EAX
|
||
|
||
59D370 8B C8 ‹È
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D372 8B 45 00 ‹E.
|
||
|
||
CDQ
|
||
|
||
59D375 99 ™
|
||
|
||
IDIV ECX
|
||
|
||
59D376 F7 F9 ÷ù
|
||
|
||
MOV [EBP], EDX
|
||
|
||
59D378 89 55 00 ‰U.
|
||
|
||
RET
|
||
|
||
59D37B C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code UMOD ;( W1, W2 -> W3 ) \ ®áâ ⮪ ®â ¤¥«¥¨ï W1 W2
|
||
|
||
59D37C 90 D3 59 00 00 04 55 4D 4F 44 63 D3 59 00 00 00 <20>ÓY...UMODcÓY...
|
||
59D38C 00 00 00 00 ....
|
||
|
||
MOV ECX, EAX
|
||
|
||
59D390 8B C8 ‹È
|
||
|
||
XOR EDX, EDX
|
||
|
||
59D392 33 D2 3Ò
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D394 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D397 8D 6D 04 <20>m.
|
||
|
||
DIV ECX
|
||
|
||
59D39A F7 F1 ֖
|
||
|
||
MOV EAX, EDX
|
||
|
||
59D39C 8B C2 ‹Â
|
||
|
||
RET
|
||
|
||
59D39E C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code UM/MOD ;( ud u1 -- u2 u3 ) \ 94
|
||
|
||
59D39F B0 D3 59 00 00 06 55 4D 2F 4D 4F 44 81 D3 59 00 °ÓY...UM/MOD<4F>ÓY.
|
||
59D3AF 00 .
|
||
|
||
; „¥«¨âì ud u1, ¯®«ãç¨âì ç á⮥ u3 ¨ ®áâ ⮪ u2.
|
||
; ‚ᥠ§ ç¥¨ï ¨ à¨ä¬¥â¨ª ¡¥§§ ª®¢ë¥.
|
||
; ˆáª«îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u1 ®«ì ¨«¨ ç á⮥
|
||
; 室¨âáï ¢¥ ¤¨ ¯ §® ®¤¨ àëå ¡¥§§ ª®¢ëå ç¨á¥«.
|
||
MOV ECX, EAX
|
||
|
||
59D3B0 8B C8 ‹È
|
||
|
||
MOV EDX, [EBP]
|
||
|
||
59D3B2 8B 55 00 ‹U.
|
||
|
||
MOV EAX, [EBP+4]
|
||
|
||
59D3B5 8B 45 04 ‹E.
|
||
|
||
DIV ECX
|
||
|
||
59D3B8 F7 F1 ֖
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D3BA 8D 6D 04 <20>m.
|
||
|
||
MOV [EBP], EDX
|
||
|
||
59D3BD 89 55 00 ‰U.
|
||
|
||
|
||
RET
|
||
|
||
59D3C0 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 2/ ;( x1 -- x2 ) \ 94
|
||
|
||
59D3C1 D0 D3 59 00 00 02 32 2F A4 D3 59 00 00 00 00 ÐÓY...2/¤ÓY....
|
||
|
||
; x2 - १ã«ìâ â ᤢ¨£ x1 ®¤¨ ¡¨â ¢¯à ¢® ¡¥§ ¨§¬¥¥¨ï áâ à襣® ¡¨â .
|
||
SAR EAX,1
|
||
|
||
59D3D0 D1 F8 Ñø
|
||
|
||
RET
|
||
|
||
59D3D2 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code */MOD ;( n1 n2 n3 -- n4 n5 ) \ 94
|
||
|
||
59D3D3 F0 D3 59 00 00 05 2A 2F 4D 4F 44 C6 D3 59 00 00 ðÓY...*/MODÆÓY..
|
||
59D3E3 00 00 00 00 00 00 00 00 00 00 00 00 00 .............
|
||
|
||
; “¬®¦¨âì n1 n2, ¯®«ãç¨âì ¯à®¬¥¦ãâ®çë© ¤¢®©®© १ã«ìâ â d.
|
||
; <20> §¤¥«¨âì d n3, ¯®«ãç¨âì ®áâ ⮪ n4 ¨ ç á⮥ n5.
|
||
MOV EBX, EAX
|
||
|
||
59D3F0 8B D8 ‹Ø
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D3F2 8B 45 00 ‹E.
|
||
|
||
MOV ECX, [EBP+4]
|
||
|
||
59D3F5 8B 4D 04 ‹M.
|
||
|
||
IMUL ECX
|
||
|
||
59D3F8 F7 E9 ֎
|
||
|
||
IDIV EBX
|
||
|
||
59D3FA F7 FB ÷û
|
||
|
||
MOV [EBP+4], EDX
|
||
|
||
59D3FC 89 55 04 ‰U.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D3FF 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D402 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code M* ;( n1 n2 -- d ) \ 94
|
||
|
||
59D403 10 D4 59 00 00 02 4D 2A D8 D3 59 00 00 .ÔY...M*ØÓY..
|
||
|
||
; d - § ª®¢ë© १ã«ìâ â 㬮¦¥¨ï n1 n2.
|
||
IMUL DWORD PTR [EBP]
|
||
|
||
59D410 F7 6D 00 ÷m.
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D413 89 45 00 ‰E.
|
||
|
||
MOV EAX, EDX
|
||
|
||
59D416 8B C2 ‹Â
|
||
|
||
RET
|
||
|
||
59D418 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code LSHIFT ;( x1 u -- x2 ) ; 94
|
||
|
||
59D419 30 D4 59 00 00 06 4C 53 48 49 46 54 08 D4 59 00 0ÔY...LSHIFT.ÔY.
|
||
59D429 00 00 00 00 00 00 00 .......
|
||
|
||
; ‘¤¢¨ãâì x1 u ¡¨â ¢«¥¢®. <20>®¬¥áâ¨âì 㫨 ¢ ¨¬¥¥¥ § ç¨¬ë¥ ¡¨âë,
|
||
; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥.
|
||
; <20>¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢®
|
||
; ç¨á«ã ¡¨â ¢ ï祩ª¥.
|
||
MOV ECX, EAX
|
||
|
||
59D430 8B C8 ‹È
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D432 8B 45 00 ‹E.
|
||
|
||
SHL EAX, CL
|
||
|
||
59D435 D3 E0 Óà
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D437 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D43A C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code RSHIFT ;( x1 u -- x2 ) \ 94
|
||
|
||
59D43B 50 D4 59 00 00 06 52 53 48 49 46 54 1E D4 59 00 PÔY...RSHIFT.ÔY.
|
||
59D44B 00 00 00 00 00 .....
|
||
|
||
; ‘¤¢¨ãâì x1 u ¡¨â ¢¯à ¢®. <20>®¬¥áâ¨âì 㫨 ¢ ¨¡®«¥¥ § ç¨¬ë¥ ¡¨âë,
|
||
; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥.
|
||
; <20>¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢®
|
||
; ç¨á«ã ¡¨â ¢ ï祩ª¥.
|
||
MOV ECX, EAX
|
||
|
||
59D450 8B C8 ‹È
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D452 8B 45 00 ‹E.
|
||
|
||
SHR EAX, CL
|
||
|
||
59D455 D3 E8 Óè
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D457 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D45A C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code SM/REM ;( d1 n1 -- n2 n3 ) \ 94
|
||
|
||
59D45B 70 D4 59 00 00 06 53 4D 2F 52 45 4D 40 D4 59 00 pÔY...SM/REM@ÔY.
|
||
59D46B 00 00 00 00 00 .....
|
||
|
||
; <20> §¤¥«¨âì d1 n1, ¯®«ãç¨âì ᨬ¬¥âà¨ç®¥ ç á⮥ n3 ¨ ®áâ ⮪ n2.
|
||
; ‚å®¤ë¥ ¨ ¢ëå®¤ë¥ à£ã¬¥âë § ª®¢ë¥.
|
||
; <20>¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n1 ®«ì, ¨«¨ ç á⮥ ¢¥
|
||
; ¤¨ ¯ §® ®¤¨ àëå § ª®¢ëå ç¨á¥«.
|
||
MOV EBX, EAX
|
||
|
||
59D470 8B D8 ‹Ø
|
||
|
||
MOV EDX, [EBP]
|
||
|
||
59D472 8B 55 00 ‹U.
|
||
|
||
MOV EAX, [EBP+4]
|
||
|
||
59D475 8B 45 04 ‹E.
|
||
|
||
IDIV EBX
|
||
|
||
59D478 F7 FB ÷û
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D47A 8D 6D 04 <20>m.
|
||
|
||
MOV [EBP], EDX
|
||
|
||
59D47D 89 55 00 ‰U.
|
||
|
||
RET
|
||
|
||
59D480 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code FM/MOD ;( d1 n1 -- n2 n3 ) \ 94
|
||
|
||
59D481 A0 D4 59 00 00 06 46 4D 2F 4D 4F 44 60 D4 59 00 ÔY...FM/MOD`ÔY.
|
||
59D491 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............
|
||
|
||
; Ðàçäåëèòü d1 íà n1, ïîëó÷èòü ÷àñòíîå n3 è îñòàòîê n2.
|
||
; Âõîäíûå è âûõîäíûå àðãóìåíòû çíàêîâûå.
|
||
; Íåîäíîçíà÷íàÿ ñèòóàöèÿ âîçíèêàåò, åñëè n1 íîëü, èëè ÷àñòíîå âíå
|
||
; äèàïàçîíà îäèíàðíûõ çíàêîâûõ ÷èñåë.
|
||
MOV ECX, EAX
|
||
|
||
59D4A0 8B C8 ‹È
|
||
|
||
MOV EDX, [EBP]
|
||
|
||
59D4A2 8B 55 00 ‹U.
|
||
|
||
MOV EBX, EDX
|
||
|
||
59D4A5 8B DA ‹Ú
|
||
|
||
MOV EAX, [EBP+4]
|
||
|
||
59D4A7 8B 45 04 ‹E.
|
||
|
||
IDIV ECX
|
||
|
||
59D4AA F7 F9 ÷ù
|
||
|
||
TEST EDX, EDX ; Îñòàòîê-òî åñòü?
|
||
|
||
59D4AC 85 D2 …Ò
|
||
|
||
JZ SHORT @@1
|
||
|
||
59D4AE 74 07 t.
|
||
|
||
XOR EBX, ECX ; À àðãóìåíòû ðàçíîãî çíàêà?
|
||
|
||
59D4B0 33 D9 3Ù
|
||
|
||
JNS SHORT @@1
|
||
|
||
59D4B2 79 03 y.
|
||
|
||
DEC EAX
|
||
|
||
59D4B4 48 H
|
||
|
||
ADD EDX, ECX
|
||
|
||
59D4B5 03 D1 .Ñ
|
||
|
||
@@1: LEA EBP, [EBP+4]
|
||
|
||
59D4B7 8D 6D 04 <20>m.
|
||
|
||
MOV [EBP], EDX
|
||
|
||
59D4BA 89 55 00 ‰U.
|
||
|
||
RET
|
||
|
||
59D4BD C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ ‘à ¢¥¨ï
|
||
|
||
Code = ;( x1 x2 -- flag ) \ 94
|
||
|
||
59D4BE D0 D4 59 00 00 01 3D 86 D4 59 00 00 00 00 00 00 ÐÔY...=†ÔY......
|
||
59D4CE 00 00 ..
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x1 ¯®¡¨â® à ¢¥ x2.
|
||
XOR EAX, [EBP]
|
||
|
||
59D4D0 33 45 00 3E.
|
||
|
||
SUB EAX, 1
|
||
|
||
59D4D3 83 E8 01 ď.
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D4D6 1B C0 .À
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D4D8 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D4DB C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code <> ;( x1 x2 -- flag ) \ 94 CORE EXT
|
||
|
||
59D4DC F0 D4 59 00 00 02 3C 3E C3 D4 59 00 00 00 00 00 ðÔY...<>ÃÔY.....
|
||
59D4EC 00 00 00 00 ....
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x1 ¥ à ¢¥ x2.
|
||
XOR EAX, [EBP]
|
||
|
||
59D4F0 33 45 00 3E.
|
||
|
||
NEG EAX
|
||
|
||
59D4F3 F7 D8 ֯
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D4F5 1B C0 .À
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D4F7 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D4FA C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code < ;( n1 n2 -- flag ) \ 94
|
||
|
||
59D4FB 10 D5 59 00 00 01 3C E1 D4 59 00 00 00 00 00 00 .ÕY...<áÔY......
|
||
59D50B 00 00 00 00 00 .....
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n1 ¬¥ìè¥ n2.
|
||
CMP [EBP], EAX
|
||
|
||
59D510 39 45 00 9E.
|
||
|
||
SETGE AL
|
||
|
||
59D513 0F 9D C0 .<2E>À
|
||
|
||
AND EAX, 01
|
||
|
||
59D516 83 E0 01 Ĉ.
|
||
|
||
DEC EAX
|
||
|
||
59D519 48 H
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D51A 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D51D C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code > ;( n1 n2 -- flag ) \ 94
|
||
|
||
59D51E 30 D5 59 00 00 01 3E 00 D5 59 00 00 00 00 00 00 0ÕY...>.ÕY......
|
||
59D52E 00 00 ..
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n1 ¡®«ìè¥ n2.
|
||
CMP EAX, [EBP]
|
||
|
||
59D530 3B 45 00 ;E.
|
||
|
||
SETGE AL
|
||
|
||
59D533 0F 9D C0 .<2E>À
|
||
|
||
AND EAX, 01
|
||
|
||
59D536 83 E0 01 Ĉ.
|
||
|
||
DEC EAX
|
||
|
||
59D539 48 H
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D53A 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D53D C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code WITHIN ;( n1 low high -- f1 ) \ f1=true if ((n1 >= low) & (n1 < high))
|
||
|
||
59D53E 50 D5 59 00 00 06 57 49 54 48 49 4E 23 D5 59 00 PÕY...WITHIN#ÕY.
|
||
59D54E 00 00 ..
|
||
|
||
MOV EBX, [EBP+4]
|
||
|
||
59D550 8B 5D 04 ‹].
|
||
|
||
SUB EAX, [EBP]
|
||
|
||
59D553 2B 45 00 +E.
|
||
|
||
SUB EBX, [EBP]
|
||
|
||
59D556 2B 5D 00 +].
|
||
|
||
SUB EBX, EAX
|
||
|
||
59D559 2B D8 +Ø
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D55B 1B C0 .À
|
||
|
||
ADD EBP, 8
|
||
|
||
59D55D 83 C5 08 ā.
|
||
|
||
RET
|
||
|
||
59D560 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D< ;( d1 d2 -- flag ) \ DOUBLE
|
||
|
||
59D561 70 D5 59 00 00 02 44 3C 43 D5 59 00 00 00 00 pÕY...D<CÕY....
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ d1 ¬¥ìè¥ d2.
|
||
MOV EBX, [EBP]
|
||
|
||
59D570 8B 5D 00 ‹].
|
||
|
||
CMP DWORD PTR [EBP +8 ], EBX
|
||
|
||
59D573 39 5D 08 9].
|
||
|
||
SBB DWORD PTR [EBP +4 ], EAX
|
||
|
||
59D576 19 45 04 .E.
|
||
|
||
MOV EAX, 0
|
||
|
||
59D579 B8 00 00 00 00 ¸....
|
||
|
||
SIF <
|
||
|
||
59D57E 7D 01 }.
|
||
|
||
DEC EAX
|
||
|
||
59D580 48 H
|
||
|
||
STHEN
|
||
ADD EBP, 0CH
|
||
|
||
59D581 83 C5 0C ā.
|
||
|
||
RET
|
||
|
||
59D584 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D> ;( d1 d2 -- flag ) \ DOUBLE
|
||
|
||
59D585 A0 D5 59 00 00 02 44 3E 66 D5 59 00 00 00 00 00 ÕY...D>fÕY.....
|
||
59D595 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ d1 ¡®«ìè¥ d2.
|
||
MOV EBX, [EBP]
|
||
|
||
59D5A0 8B 5D 00 ‹].
|
||
|
||
CMP EBX, [EBP+8]
|
||
|
||
59D5A3 3B 5D 08 ;].
|
||
|
||
SBB EAX, [EBP+4]
|
||
|
||
59D5A6 1B 45 04 .E.
|
||
|
||
SAR EAX, 1FH
|
||
|
||
59D5A9 C1 F8 1F Áø.
|
||
|
||
ADD EBP, 0CH
|
||
|
||
59D5AC 83 C5 0C ā.
|
||
|
||
RET
|
||
|
||
59D5AF C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code U< ;( u1 u2 -- flag ) \ 94
|
||
|
||
59D5B0 C0 D5 59 00 00 02 55 3C 8A D5 59 00 00 00 00 00 ÀÕY...U<ŠÕY.....
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ u1 ¬¥ìè¥ u2.
|
||
CMP [EBP], EAX
|
||
|
||
59D5C0 39 45 00 9E.
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D5C3 1B C0 .À
|
||
|
||
ADD EBP, 04
|
||
|
||
59D5C5 83 C5 04 ā.
|
||
|
||
RET
|
||
|
||
59D5C8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code U> ;( u1 u2 -- flag ) \ 94
|
||
|
||
59D5C9 E0 D5 59 00 00 02 55 3E B5 D5 59 00 00 00 00 00 àÕY...U>µÕY.....
|
||
59D5D9 00 00 00 00 00 00 00 .......
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ u1 ¡®«ìè¥ u2.
|
||
CMP EAX, [EBP]
|
||
|
||
59D5E0 3B 45 00 ;E.
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D5E3 1B C0 .À
|
||
|
||
ADD EBP, 04
|
||
|
||
59D5E5 83 C5 04 ā.
|
||
|
||
RET
|
||
|
||
59D5E8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 0< ;( n -- flag ) \ 94
|
||
|
||
59D5E9 00 D6 59 00 00 02 30 3C CE D5 59 00 00 00 00 00 .ÖY...0<ÎÕY.....
|
||
59D5F9 00 00 00 00 00 00 00 .......
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n ¬¥ìè¥ ã«ï.
|
||
SAR EAX, 1F
|
||
|
||
59D600 C1 F8 1F Áø.
|
||
|
||
RET
|
||
|
||
59D603 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 0= ;( x -- flag ) \ 94
|
||
|
||
59D604 10 D6 59 00 00 02 30 3D EE D5 59 00 .ÖY...0=îÕY.
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x à ¢® ã«î.
|
||
SUB EAX, 1
|
||
|
||
59D610 83 E8 01 ď.
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D613 1B C0 .À
|
||
|
||
RET
|
||
|
||
59D615 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code 0<> ;( x -- flag ) \ 94 CORE EXT
|
||
|
||
59D616 30 D6 59 00 00 03 30 3C 3E 09 D6 59 00 00 00 00 0ÖY...0<>.ÖY....
|
||
59D626 00 00 00 00 00 00 00 00 00 00 ..........
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x ¥ à ¢® ã«î.
|
||
NEG EAX
|
||
|
||
59D630 F7 D8 ֯
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D632 1B C0 .À
|
||
|
||
RET
|
||
|
||
59D634 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D0= ;( xd -- flag ) \ 94 DOUBLE
|
||
|
||
59D635 50 D6 59 00 00 03 44 30 3D 1B D6 59 00 00 00 00 PÖY...D0=.ÖY....
|
||
59D645 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ xd à ¢¥ ã«î.
|
||
OR EAX, [EBP]
|
||
|
||
59D650 0B 45 00 .E.
|
||
|
||
SUB EAX, 1
|
||
|
||
59D653 83 E8 01 ď.
|
||
|
||
SBB EAX, EAX
|
||
|
||
59D656 1B C0 .À
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D658 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D65B C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D= ;( xd1 xd2 -- flag ) \ 94 DOUBLE
|
||
|
||
59D65C 70 D6 59 00 00 02 44 3D 3A D6 59 00 00 00 00 00 pÖY...D=:ÖY.....
|
||
59D66C 00 00 00 00 ....
|
||
|
||
; flag is true if and only if xd1 is bit-for-bit the same as xd2
|
||
MOV EDX,[EBP]
|
||
|
||
59D670 8B 55 00 ‹U.
|
||
|
||
XOR EAX,[EBP+4]
|
||
|
||
59D673 33 45 04 3E.
|
||
|
||
XOR EDX,[EBP+8]
|
||
|
||
59D676 33 55 08 3U.
|
||
|
||
OR EAX,EDX
|
||
|
||
59D679 0B C2 .Â
|
||
|
||
SUB EAX,1
|
||
|
||
59D67B 83 E8 01 ď.
|
||
|
||
SBB EAX,EAX
|
||
|
||
59D67E 1B C0 .À
|
||
|
||
LEA EBP,[EBP+0CH]
|
||
|
||
59D680 8D 6D 0C <20>m.
|
||
|
||
RET
|
||
|
||
59D683 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D2* ;( xd1 -- xd2 ) \ 94 DOUBLE
|
||
|
||
59D684 A0 D6 59 00 00 03 44 32 2A 61 D6 59 00 00 00 00 ÖY...D2*aÖY....
|
||
59D694 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
; xd2 is the result of shifting xd1 one bit toward the most-significant
|
||
; bit, filling the vacated least-significant bit with zero
|
||
SHL DWORD PTR [EBP], 1
|
||
|
||
59D6A0 D1 65 00 Ñe.
|
||
|
||
RCL EAX, 1
|
||
|
||
59D6A3 D1 D0 ÑÐ
|
||
|
||
RET
|
||
|
||
59D6A5 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code D2/ ;( xd1 -- xd2 ) \ 94 DOUBLE
|
||
|
||
59D6A6 C0 D6 59 00 00 03 44 32 2F 89 D6 59 00 00 00 00 ÀÖY...D2/‰ÖY....
|
||
59D6B6 00 00 00 00 00 00 00 00 00 00 ..........
|
||
|
||
; xd2 is the result of shifting xd1 one bit toward the least-significant bit,
|
||
; leaving the most-significant bit unchanged
|
||
SAR EAX, 1
|
||
|
||
59D6C0 D1 F8 Ñø
|
||
|
||
RCR DWORD PTR [EBP], 1
|
||
|
||
59D6C2 D1 5D 00 Ñ].
|
||
|
||
RET
|
||
|
||
59D6C5 C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ ‘âப¨
|
||
|
||
Code -TRAILING ;( c-addr u1 -- c-addr u2 ) \ 94 STRING
|
||
|
||
59D6C6 E0 D6 59 00 00 09 2D 54 52 41 49 4C 49 4E 47 AB àÖY...-TRAILING«
|
||
59D6D6 D6 59 00 00 00 00 00 00 00 00 ÖY........
|
||
|
||
; …᫨ u1 ¡®«ìè¥ ã«ï, u2 à ¢® u1, 㬥ì襮¬ã ª®«¨ç¥á⢮ ¯à®¡¥«®¢ ¢ ª®æ¥
|
||
; ᨬ¢®«ì®© áâப¨, § ¤ ®© c-addr ¨ u1. …᫨ u1 ®«ì ¨«¨ ¢áï áâப á®á⮨â
|
||
; ¨§ ¯à®¡¥«®¢, u2 ®«ì.
|
||
PUSH EDI
|
||
|
||
59D6E0 57 W
|
||
|
||
MOV ECX, EAX
|
||
|
||
59D6E1 8B C8 ‹È
|
||
|
||
SIF C0<>
|
||
|
||
59D6E3 E3 11 ã.
|
||
|
||
MOV EDI, DWORD PTR [EBP]
|
||
|
||
59D6E5 8B 7D 00 ‹}.
|
||
|
||
ADD EDI, ECX
|
||
|
||
59D6E8 03 F9 .ù
|
||
|
||
DEC EDI
|
||
|
||
59D6EA 4F O
|
||
|
||
MOV AL, 20H
|
||
|
||
59D6EB B0 20 °
|
||
|
||
STD
|
||
|
||
59D6ED FD ý
|
||
|
||
REPZ SCASB
|
||
|
||
59D6EE F3 AE ó®
|
||
|
||
SIF 0<>
|
||
|
||
59D6F0 74 01 t.
|
||
|
||
INC ECX
|
||
|
||
59D6F2 41 A
|
||
|
||
STHEN
|
||
CLD
|
||
|
||
59D6F3 FC ü
|
||
|
||
MOV EAX, ECX
|
||
|
||
59D6F4 8B C1 ‹Á
|
||
|
||
STHEN
|
||
POP EDI
|
||
|
||
59D6F6 5F _
|
||
|
||
RET
|
||
|
||
59D6F7 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code COMPARE ;( c-addr1 u1 c-addr2 u2 -- n ) \ 94 STRING !!!!!
|
||
|
||
59D6F8 10 D7 59 00 00 07 43 4F 4D 50 41 52 45 CB D6 59 .×Y...COMPAREËÖY
|
||
59D708 00 00 00 00 00 00 00 00 ........
|
||
|
||
; ‘à ¢¨âì áâபã, § ¤ ãî c-addr1 u1, á® áâப®©, § ¤ ®© c-addr2 u2.
|
||
; ‘âப¨ áà ¢¨¢ îâáï, ç¨ ï á § ¤ ëå ¤à¥á®¢, ᨬ¢®« § ᨬ¢®«®¬, ¤® ¤«¨ë
|
||
; ¨¡®«¥¥ ª®à®âª®© ¨§ áâப ¨«¨ ¤® 宦¤¥¨ï à §«¨ç¨©. …᫨ ¤¢¥ áâப¨
|
||
; ¨¤¥â¨çë, n ®«ì. …᫨ ¤¢¥ áâப¨ ¨¤¥â¨çë ¤® ¤«¨ë ¨¡®«¥¥ ª®à®âª®© ¨§
|
||
; áâப, â® n ¬¨ãá ¥¤¨¨æ (-1), ¥á«¨ u1 ¬¥ìè¥ u2, ¨ ç¥ ¥¤¨¨æ (1).
|
||
; …᫨ ¤¢¥ áâப¨ ¥ ¨¤¥â¨çë ¤® ¤«¨ë ¨¡®«¥¥ ª®à®âª®© ¨§ áâப, â® n ¬¨ãá
|
||
; ¥¤¨¨æ (-1), ¥á«¨ ¯¥à¢ë© ¥á®¢¯ ¤ î騩 ᨬ¢®« áâப¨, § ¤ ®© c-addr1 u1
|
||
; ¨¬¥¥â ¬¥ì襥 ç¨á«®¢®¥ § 票¥, 祬 ᮮ⢥âáâ¢ãî騩 ᨬ¢®« ¢ áâப¥,
|
||
; § ¤ ®© c-addr2 u2, ¨ ¥¤¨¨æ ¢ ¯à®â¨¢®¬ á«ãç ¥.
|
||
PUSH EDI
|
||
|
||
59D710 57 W
|
||
|
||
MOV ECX, EAX
|
||
|
||
59D711 8B C8 ‹È
|
||
|
||
SUB EAX, EAX
|
||
|
||
59D713 2B C0 +À
|
||
|
||
CMP ECX, [EBP +4 ]
|
||
|
||
59D715 3B 4D 04 ;M.
|
||
|
||
SIF 0<>
|
||
|
||
59D718 74 09 t.
|
||
|
||
SIF U<
|
||
|
||
59D71A 73 03 s.
|
||
|
||
INC EAX
|
||
|
||
59D71C 40 @
|
||
|
||
SELSE
|
||
|
||
59D71D EB 04 ë.
|
||
|
||
DEC EAX
|
||
|
||
59D71F 48 H
|
||
|
||
MOV ECX, [EBP +4 ]
|
||
|
||
59D720 8B 4D 04 ‹M.
|
||
|
||
STHEN
|
||
STHEN
|
||
MOV ESI, [EBP + { 2 CELLS } ]
|
||
|
||
59D723 8B 75 08 ‹u.
|
||
|
||
MOV EDI, [EBP]
|
||
|
||
59D726 8B 7D 00 ‹}.
|
||
|
||
REPE CMPSB
|
||
|
||
59D729 F3 A6 ó¦
|
||
|
||
SIF 0<>
|
||
|
||
59D72B 74 0E t.
|
||
|
||
SIF U>=
|
||
|
||
59D72D 72 07 r.
|
||
|
||
MOV EAX, 1
|
||
|
||
59D72F B8 01 00 00 00 ¸....
|
||
|
||
SELSE
|
||
|
||
59D734 EB 05 ë.
|
||
|
||
MOV EAX, -1
|
||
|
||
59D736 B8 FF FF FF FF ¸ÿÿÿÿ
|
||
|
||
STHEN
|
||
STHEN
|
||
LEA EBP, [EBP + { 3 CELLS } ]
|
||
|
||
59D73B 8D 6D 0C <20>m.
|
||
|
||
POP EDI
|
||
|
||
59D73E 5F _
|
||
|
||
RET
|
||
|
||
59D73F C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code SEARCH ;( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) \ 94 STRING
|
||
|
||
59D740 50 D7 59 00 00 06 53 45 41 52 43 48 FD D6 59 00 P×Y...SEARCHýÖY.
|
||
|
||
; <20>ந§¢¥á⨠¯®¨áª ¢ áâப¥, § ¤ ®© c-addr1 u1, áâப¨, § ¤ ®© c-addr2 u2.
|
||
; …᫨ ä« £ "¨á⨠", ᮢ¯ ¤¥¨¥ ©¤¥® ¯® ¤à¥áã c-addr3 á ®á⠢訬¨áï u3
|
||
; ᨬ¢®« ¬¨. …᫨ ä« £ "«®¦ì", ᮢ¯ ¤¥¨ï ¥ ©¤¥®, ¨ c-addr3 ¥áâì c-addr1,
|
||
; ¨ u3 ¥áâì u1. \ !!!!!
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D750 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D753 89 45 00 ‰E.
|
||
|
||
PUSH EDI
|
||
|
||
59D756 57 W
|
||
|
||
CLD
|
||
|
||
59D757 FC ü
|
||
|
||
MOV EBX, DWORD PTR [EBP]
|
||
|
||
59D758 8B 5D 00 ‹].
|
||
|
||
OR EBX, EBX
|
||
|
||
59D75B 0B DB .Û
|
||
|
||
SIF 0<>
|
||
|
||
59D75D 74 35 t5
|
||
|
||
MOV EDX, DWORD PTR [EBP + { 2 CELLS } ]
|
||
|
||
59D75F 8B 55 08 ‹U.
|
||
|
||
MOV EDI, DWORD PTR [EBP + { 3 CELLS } ]
|
||
|
||
59D762 8B 7D 0C ‹}.
|
||
|
||
ADD EDX, EDI
|
||
|
||
59D765 03 D7 .×
|
||
|
||
SBEGIN
|
||
MOV ESI, DWORD PTR [EBP +4 ]
|
||
|
||
59D767 8B 75 04 ‹u.
|
||
|
||
LODSB
|
||
|
||
59D76A AC ¬
|
||
|
||
MOV ECX, EDX
|
||
|
||
59D76B 8B CA ‹Ê
|
||
|
||
SUB ECX, EDI
|
||
|
||
59D76D 2B CF +Ï
|
||
|
||
JECXZ LLD
|
||
|
||
59D76F E3 2A ã*
|
||
|
||
REPNZ
|
||
|
||
59D771 F2 ò
|
||
|
||
SCASB
|
||
|
||
59D772 AE ®
|
||
|
||
JNE SHORT LLD ; ¢® ¢á¥© áâப¥ ¥â ¯¥à¢®£® ᨬ¢®« ¨áª®¬®© áâப¨
|
||
|
||
59D773 75 26 u&
|
||
|
||
CMP EBX, 1
|
||
|
||
59D775 83 FB 01 ƒû.
|
||
|
||
JZ SHORT LLC ; ¨áª®¬ ï áâப ¨¬¥« ¤«¨ã 1 ¨ ©¤¥
|
||
|
||
59D778 74 11 t.
|
||
|
||
MOV ECX, EBX
|
||
|
||
59D77A 8B CB ‹Ë
|
||
|
||
DEC ECX
|
||
|
||
59D77C 49 I
|
||
|
||
MOV EAX, EDX
|
||
|
||
59D77D 8B C2 ‹Â
|
||
|
||
SUB EAX, EDI
|
||
|
||
59D77F 2B C7 +Ç
|
||
|
||
CMP EAX, ECX
|
||
|
||
59D781 3B C1 ;Á
|
||
|
||
JC SHORT LLD ; ®áâ ⮪ áâப¨ ª®à®ç¥ ¨áª®¬®© áâப¨
|
||
|
||
59D783 72 16 r.
|
||
|
||
PUSH EDI
|
||
|
||
59D785 57 W
|
||
|
||
REPZ CMPSB
|
||
|
||
59D786 F3 A6 ó¦
|
||
|
||
POP EDI
|
||
|
||
59D788 5F _
|
||
|
||
SUNTIL 0=
|
||
|
||
59D789 75 DC uÜ
|
||
|
||
LLC: DEC EDI ; 諨 ¯®«®¥ ᮢ¯ ¤¥¨¥
|
||
|
||
59D78B 4F O
|
||
|
||
SUB EDX, EDI
|
||
|
||
59D78C 2B D7 +×
|
||
|
||
MOV DWORD PTR [EBP + { 3 CELLS } ], EDI
|
||
|
||
59D78E 89 7D 0C ‰}.
|
||
|
||
MOV DWORD PTR [EBP + { 2 CELLS } ], EDX
|
||
|
||
59D791 89 55 08 ‰U.
|
||
|
||
STHEN
|
||
MOV EAX, -1
|
||
|
||
59D794 B8 FF FF FF FF ¸ÿÿÿÿ
|
||
|
||
JMP SHORT LLA
|
||
|
||
59D799 EB 02 ë.
|
||
|
||
LLD: XOR EAX, EAX
|
||
|
||
59D79B 33 C0 3À
|
||
|
||
LLA: LEA EBP, [EBP+4]
|
||
|
||
59D79D 8D 6D 04 <20>m.
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D7A0 89 45 00 ‰E.
|
||
|
||
POP EDI
|
||
|
||
59D7A3 5F _
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D7A4 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D7A7 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D7AA C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code CMOVE ;( c-addr1 c-addr2 u -- ) \ 94 STRING
|
||
|
||
59D7AB C0 D7 59 00 00 05 43 4D 4F 56 45 45 D7 59 00 00 À×Y...CMOVEE×Y..
|
||
59D7BB 00 00 00 00 00 .....
|
||
|
||
; …᫨ u ¡®«ìè¥ ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ ⥫ìëå ᨬ¢®«®¢ ¨§ ¯à®áâà áâ¢
|
||
; ¤ ëå ç¨ ï á ¤à¥á c-addr1 ¢ c-addr2, ᨬ¢®« § ᨬ¢®«®¬, ç¨ ï á
|
||
; ¬« ¤è¨å ¤à¥á®¢ ª áâ à訬.
|
||
MOV EDX, EDI
|
||
|
||
59D7C0 8B D7 ‹×
|
||
|
||
MOV ECX, EAX
|
||
|
||
59D7C2 8B C8 ‹È
|
||
|
||
MOV EDI, DWORD PTR [EBP]
|
||
|
||
59D7C4 8B 7D 00 ‹}.
|
||
|
||
MOV ESI, DWORD PTR [EBP +4 ]
|
||
|
||
59D7C7 8B 75 04 ‹u.
|
||
|
||
CLD
|
||
|
||
59D7CA FC ü
|
||
|
||
REPZ MOVSB
|
||
|
||
59D7CB F3 A4 ó¤
|
||
|
||
LEA EBP, [EBP+0CH]
|
||
|
||
59D7CD 8D 6D 0C <20>m.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59D7D0 8B 45 FC ‹Eü
|
||
|
||
MOV EDI, EDX
|
||
|
||
59D7D3 8B FA ‹ú
|
||
|
||
RET
|
||
|
||
59D7D5 C3 Ã
|
||
|
||
EndCode
|
||
|
||
: QCMOVE CMOVE ;
|
||
|
||
59D7D6 F0 D7 59 00 00 06 51 43 4D 4F 56 45 B0 D7 59 00 ð×Y...QCMOVE°×Y.
|
||
59D7E6 00 00 00 00 00 00 00 00 00 00 ..........
|
||
|
||
CALL @@CMOVE
|
||
RET
|
||
|
||
Code CMOVE> ;( c-addr1 c-addr2 u -- ) \ 94 STRING
|
||
|
||
59D7F6 10 D8 59 00 00 06 43 4D 4F 56 45 3E DB D7 59 00 .ØY...CMOVE>Û×Y.
|
||
59D806 00 00 00 00 00 00 00 00 00 00 ..........
|
||
|
||
; …᫨ u ¡®«ìè¥ ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ ⥫ìëå ᨬ¢®«®¢ ¨§ ¯à®áâà áâ¢
|
||
; ¤ ëå ç¨ ï á ¤à¥á c-addr1 ¢ c-addr2, ᨬ¢®« § ᨬ¢®«®¬, ç¨ ï á®
|
||
; áâ àè¨å ¤à¥á®¢ ª ¬« ¤è¨¬.
|
||
|
||
MOV EDX, EDI
|
||
|
||
59D810 8B D7 ‹×
|
||
|
||
MOV ECX, EAX
|
||
|
||
59D812 8B C8 ‹È
|
||
|
||
MOV EDI, [EBP]
|
||
|
||
59D814 8B 7D 00 ‹}.
|
||
|
||
MOV ESI, [EBP+4]
|
||
|
||
59D817 8B 75 04 ‹u.
|
||
|
||
STD
|
||
|
||
59D81A FD ý
|
||
|
||
ADD EDI, ECX
|
||
|
||
59D81B 03 F9 .ù
|
||
|
||
DEC EDI
|
||
|
||
59D81D 4F O
|
||
|
||
ADD ESI, ECX
|
||
|
||
59D81E 03 F1 .ñ
|
||
|
||
DEC ESI
|
||
|
||
59D820 4E N
|
||
|
||
REP MOVSB
|
||
|
||
59D821 F3 A4 ó¤
|
||
|
||
MOV EDI, EDX
|
||
|
||
59D823 8B FA ‹ú
|
||
|
||
LEA EBP, [EBP+0CH]
|
||
|
||
59D825 8D 6D 0C <20>m.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59D828 8B 45 FC ‹Eü
|
||
|
||
RET
|
||
|
||
59D82B C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code FILL ;( c-addr u char -- ) \ 94 \ !!!!!
|
||
|
||
59D82C 40 D8 59 00 00 04 46 49 4C 4C FB D7 59 00 00 00 @ØY...FILLû×Y...
|
||
59D83C 00 00 00 00 ....
|
||
|
||
; …᫨ u ¡®«ìè¥ ã«ï, § á« âì char ¢ u ¡ ©â®¢ ¯® ¤à¥áã c-addr.
|
||
MOV EDX, EDI
|
||
|
||
59D840 8B D7 ‹×
|
||
|
||
MOV ECX, [EBP]
|
||
|
||
59D842 8B 4D 00 ‹M.
|
||
|
||
MOV EDI, [EBP+4]
|
||
|
||
59D845 8B 7D 04 ‹}.
|
||
|
||
CLD
|
||
|
||
59D848 FC ü
|
||
|
||
REP STOSB
|
||
|
||
59D849 F3 AA óª
|
||
|
||
MOV EDI, EDX
|
||
|
||
59D84B 8B FA ‹ú
|
||
|
||
LEA EBP, [EBP+0CH]
|
||
|
||
59D84D 8D 6D 0C <20>m.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59D850 8B 45 FC ‹Eü
|
||
|
||
RET
|
||
|
||
59D853 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code ZCOUNT ;( c-addr -- c-addr u )
|
||
|
||
59D854 70 D8 59 00 00 06 5A 43 4F 55 4E 54 31 D8 59 00 pØY...ZCOUNT1ØY.
|
||
59D864 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D870 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D873 89 45 00 ‰E.
|
||
|
||
XOR EBX, EBX
|
||
|
||
59D876 33 DB 3Û
|
||
|
||
SBEGIN
|
||
MOV BL, BYTE PTR [EAX ]
|
||
|
||
59D878 8A 18 Š.
|
||
|
||
INC EAX
|
||
|
||
59D87A 40 @
|
||
|
||
OR BL, BL
|
||
|
||
59D87B 0A DB .Û
|
||
|
||
SUNTIL 0=
|
||
|
||
59D87D 75 F9 uù
|
||
|
||
DEC EAX
|
||
|
||
59D87F 48 H
|
||
|
||
SUB EAX, [EBP]
|
||
|
||
59D880 2B 45 00 +E.
|
||
|
||
RET
|
||
|
||
59D883 C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ “ª § ⥫¨ á⥪®¢
|
||
|
||
Code SP! ;( A -> )
|
||
|
||
59D884 A0 D8 59 00 00 03 53 50 21 59 D8 59 00 00 00 00 ØY...SP!YØY....
|
||
59D894 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
LEA EBP, [EAX+4]
|
||
|
||
59D8A0 8D 68 04 <20>h.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59D8A3 8B 45 FC ‹Eü
|
||
|
||
RET
|
||
|
||
59D8A6 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code RP! ;( A -> )
|
||
|
||
59D8A7 C0 D8 59 00 00 03 52 50 21 89 D8 59 00 00 00 00 ÀØY...RP!‰ØY....
|
||
59D8B7 00 00 00 00 00 00 00 00 00 .........
|
||
|
||
POP EBX
|
||
|
||
59D8C0 5B [
|
||
|
||
MOV ESP, EAX
|
||
|
||
59D8C1 8B E0 ‹à
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D8C3 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D8C6 8D 6D 04 <20>m.
|
||
|
||
JMP EBX
|
||
|
||
59D8C9 FF E3 ÿã
|
||
|
||
EndCode
|
||
|
||
Code SP@ ;( -> A )
|
||
|
||
59D8CB E0 D8 59 00 00 03 53 50 40 AC D8 59 00 00 00 00 àØY...SP@¬ØY....
|
||
59D8DB 00 00 00 00 00 .....
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D8E0 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D8E3 89 45 00 ‰E.
|
||
|
||
MOV EAX, EBP
|
||
|
||
59D8E6 8B C5 ‹Å
|
||
|
||
RET
|
||
|
||
59D8E8 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code RP@ ;( -- RP )
|
||
|
||
59D8E9 00 D9 59 00 00 03 52 50 40 D0 D8 59 00 00 00 00 .ÙY...RP@ÐØY....
|
||
59D8F9 00 00 00 00 00 00 00 .......
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D900 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D903 89 45 00 ‰E.
|
||
|
||
LEA EAX, [ESP + 4 ]
|
||
|
||
59D906 8D 44 24 04 <20>D$.
|
||
|
||
RET
|
||
|
||
59D90A C3 Ã
|
||
|
||
EndCode
|
||
|
||
|
||
\ ================================================================
|
||
\ <20>¥£¨áâà ¯®â®ª (§ ¤ ç¨ ¢ãâਠä®àâ )
|
||
|
||
Code TlsIndex! ;( x -- ) \ 㪠§ â¥«ì «®ª «ì®£® ¯ã« ¯®â®ª
|
||
|
||
59D90B 20 D9 59 00 00 09 54 6C 73 49 6E 64 65 78 21 EE ÙY...TlsIndex!î
|
||
59D91B D8 59 00 00 00 ØY...
|
||
|
||
MOV EDI, EAX
|
||
|
||
59D920 8B F8 ‹ø
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59D922 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59D925 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59D928 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code TlsIndex@ ;( -- x )
|
||
|
||
59D929 40 D9 59 00 00 09 54 6C 73 49 6E 64 65 78 40 10 @ÙY...TlsIndex@.
|
||
59D939 D9 59 00 00 00 00 00 ÙY.....
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D940 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D943 89 45 00 ‰E.
|
||
|
||
MOV EAX, EDI
|
||
|
||
59D946 8B C7 ‹Ç
|
||
|
||
RET
|
||
|
||
59D948 C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ –¨ª«ë
|
||
|
||
Code C-J
|
||
|
||
59D949 60 D9 59 00 00 03 43 2D 4A 2E D9 59 00 00 00 00 `ÙY...C-J.ÙY....
|
||
59D959 00 00 00 00 00 00 00 .......
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59D960 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59D963 89 45 00 ‰E.
|
||
|
||
MOV EAX, DWORD PTR [ESP + { 3 CELLS } ]
|
||
|
||
59D966 8B 44 24 0C ‹D$.
|
||
|
||
SUB EAX, DWORD PTR [ESP + { 4 CELLS } ]
|
||
|
||
59D96A 2B 44 24 10 +D$.
|
||
|
||
RET
|
||
|
||
59D96E C3 Ã
|
||
|
||
EndCode
|
||
|
||
( inline'ë ¤«ï ª®¬¯¨«ï樨 横«®¢ )
|
||
|
||
Code C-DO
|
||
|
||
59D96F 80 D9 59 00 00 04 43 2D 44 4F 4E D9 59 00 00 00 €ÙY...C-DONÙY...
|
||
59D97F 00 .
|
||
|
||
LEA EBP, [EBP+8]
|
||
|
||
59D980 8D 6D 08 <20>m.
|
||
|
||
MOV EDX, 80000000H
|
||
|
||
59D983 BA 00 00 00 80 º...€
|
||
|
||
SUB EDX, [EBP-8]
|
||
|
||
59D988 2B 55 F8 +Uø
|
||
|
||
LEA EBX, [EAX+EDX]
|
||
|
||
59D98B 8D 1C 02 <20>..
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59D98E 8B 45 FC ‹Eü
|
||
|
||
MOV EDX, EDX ; FOR OPT
|
||
|
||
59D991 8B D2 ‹Ò
|
||
|
||
; PUSH EDX
|
||
; PUSH EBX
|
||
RET
|
||
|
||
59D993 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C-?DO
|
||
|
||
59D994 B0 D9 59 00 00 05 43 2D 3F 44 4F 74 D9 59 00 00 °ÙY...C-?DOtÙY..
|
||
59D9A4 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
CMP EAX, [EBP-8]
|
||
|
||
59D9B0 3B 45 F8 ;Eø
|
||
|
||
SIF 0=
|
||
|
||
59D9B3 75 05 u.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59D9B5 8B 45 FC ‹Eü
|
||
|
||
JMP EBX
|
||
|
||
59D9B8 FF E3 ÿã
|
||
|
||
STHEN
|
||
PUSH EBX
|
||
|
||
59D9BA 53 S
|
||
|
||
MOV EBX , 80000000
|
||
|
||
59D9BB BB 00 00 00 80 »...€
|
||
|
||
SUB EBX, [EBP-8]
|
||
|
||
59D9C0 2B 5D F8 +]ø
|
||
|
||
PUSH EBX ; 80000000h-to
|
||
|
||
59D9C3 53 S
|
||
|
||
ADD EBX, EAX
|
||
|
||
59D9C4 03 D8 .Ø
|
||
|
||
PUSH EBX ; 80000000H-to+from
|
||
|
||
59D9C6 53 S
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59D9C7 8B 45 FC ‹Eü
|
||
|
||
RET
|
||
|
||
59D9CA C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code ADD[ESP],EAX
|
||
|
||
59D9CB F0 D9 59 00 00 0C 41 44 44 5B 45 53 50 5D 2C 45 ðÙY...ADD[ESP],E
|
||
59D9DB 41 58 99 D9 59 00 00 00 00 00 00 00 00 00 00 00 AX™ÙY...........
|
||
59D9EB 00 00 00 00 00 .....
|
||
|
||
ADD [ESP] , EAX
|
||
|
||
59D9F0 01 04 24 ..$
|
||
|
||
RET
|
||
|
||
59D9F3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C-I
|
||
|
||
59D9F4 10 DA 59 00 00 03 43 2D 49 D0 D9 59 00 00 00 00 .ÚY...C-IÐÙY....
|
||
59DA04 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59DA10 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59DA13 89 45 00 ‰E.
|
||
|
||
MOV EAX, DWORD PTR [ESP]
|
||
|
||
59DA16 8B 04 24 ‹.$
|
||
|
||
SUB EAX, [ESP+4]
|
||
|
||
59DA19 2B 44 24 04 +D$.
|
||
|
||
RET
|
||
|
||
59DA1D C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C->R
|
||
|
||
59DA1E 30 DA 59 00 00 04 43 2D 3E 52 F9 D9 59 00 00 00 0ÚY...C->RùÙY...
|
||
59DA2E 00 00 ..
|
||
|
||
PUSH EAX
|
||
|
||
59DA30 50 P
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DA31 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DA34 8D 6D 04 <20>m.
|
||
|
||
RET
|
||
|
||
59DA37 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C-R>
|
||
|
||
59DA38 50 DA 59 00 00 04 43 2D 52 3E 23 DA 59 00 00 00 PÚY...C-R>#ÚY...
|
||
59DA48 00 00 00 00 00 00 00 00 ........
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59DA50 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59DA53 89 45 00 ‰E.
|
||
|
||
POP EAX
|
||
|
||
59DA56 58 X
|
||
|
||
RET
|
||
|
||
59DA57 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C-RDROP
|
||
|
||
59DA58 70 DA 59 00 00 07 43 2D 52 44 52 4F 50 3D DA 59 pÚY...C-RDROP=ÚY
|
||
59DA68 00 00 00 00 00 00 00 00 ........
|
||
|
||
ADD ESP, 4
|
||
|
||
59DA70 83 C4 04 Ā.
|
||
|
||
RET
|
||
|
||
59DA73 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C-2RDROP
|
||
|
||
59DA74 90 DA 59 00 00 08 43 2D 32 52 44 52 4F 50 5D DA <20>ÚY...C-2RDROP]Ú
|
||
59DA84 59 00 00 00 00 00 00 00 00 00 00 00 Y...........
|
||
|
||
ADD ESP, 8
|
||
|
||
59DA90 83 C4 08 Ā.
|
||
|
||
RET
|
||
|
||
59DA93 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code C-3RDROP
|
||
|
||
59DA94 B0 DA 59 00 00 08 43 2D 33 52 44 52 4F 50 79 DA °ÚY...C-3RDROPyÚ
|
||
59DAA4 59 00 00 00 00 00 00 00 00 00 00 00 Y...........
|
||
|
||
ADD ESP, 0CH
|
||
|
||
59DAB0 83 C4 0C Ā.
|
||
|
||
RET
|
||
|
||
59DAB3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
TRUE [IF]
|
||
Code C-EXECUTE ;( i*x xt -- j*x ) \ 94
|
||
|
||
59DAB4 D0 DA 59 00 00 09 43 2D 45 58 45 43 55 54 45 99 ÐÚY...C-EXECUTE™
|
||
59DAC4 DA 59 00 00 00 00 00 00 00 00 00 00 ÚY..........
|
||
|
||
; “¡à âì xt á® á⥪ ¨ ¢ë¯®«¨âì § ¤ ãî ¨¬ ᥬ ⨪ã.
|
||
; „à㣨¥ ¨§¬¥¥¨ï á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«ï¥âáï.
|
||
MOV EDX, EAX
|
||
|
||
59DAD0 8B D0 ‹Ð
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DAD2 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DAD5 8D 6D 04 <20>m.
|
||
|
||
CALL EDX
|
||
|
||
59DAD8 FF D2 ÿÒ
|
||
|
||
RET
|
||
|
||
59DADA C3 Ã
|
||
|
||
EndCode
|
||
[THEN]
|
||
|
||
Code EXECUTE ;( i*x xt -- j*x ) \ 94
|
||
|
||
59DADB F0 DA 59 00 00 07 45 58 45 43 55 54 45 B9 DA 59 ðÚY...EXECUTE¹ÚY
|
||
59DAEB 00 00 00 00 00 .....
|
||
|
||
; “¡à âì xt á® á⥪ ¨ ¢ë¯®«¨âì § ¤ ãî ¨¬ ᥬ ⨪ã.
|
||
; „à㣨¥ ¨§¬¥¥¨ï á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«ï¥âáï.
|
||
MOV EBX, EAX
|
||
|
||
59DAF0 8B D8 ‹Ø
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DAF2 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DAF5 8D 6D 04 <20>m.
|
||
|
||
JMP EBX
|
||
|
||
59DAF8 FF E3 ÿã
|
||
|
||
EndCode
|
||
|
||
Code @EXECUTE ;( i*x xt -- j*x )
|
||
|
||
59DAFA 10 DB 59 00 00 08 40 45 58 45 43 55 54 45 E0 DA .ÛY...@EXECUTEàÚ
|
||
59DB0A 59 00 00 00 00 00 Y.....
|
||
|
||
MOV EBX, EAX
|
||
|
||
59DB10 8B D8 ‹Ø
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DB12 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DB15 8D 6D 04 <20>m.
|
||
|
||
JMP [EBX]
|
||
|
||
59DB18 FF 23 ÿ#
|
||
|
||
EndCode
|
||
|
||
\ ================================================================
|
||
\ <20>®¤¤¥à¦ª LOCALS
|
||
|
||
Code DRMOVE ;( x1 ... xn n*4 -- )
|
||
|
||
59DB1A 30 DB 59 00 00 06 44 52 4D 4F 56 45 FF DA 59 00 0ÛY...DRMOVEÿÚY.
|
||
59DB2A 00 00 00 00 00 00 ......
|
||
|
||
; ¯¥à¥¥á⨠n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢
|
||
POP EDX ; ¤à¥á ¢®§¢à â
|
||
|
||
59DB30 5A Z
|
||
|
||
MOV ESI, EAX
|
||
|
||
59DB31 8B F0 ‹ð
|
||
|
||
@@1:
|
||
PUSH DWORD PTR [EBP+ESI-4]
|
||
|
||
59DB33 FF 74 2E FC ÿt.ü
|
||
|
||
SUB ESI, 4
|
||
|
||
59DB37 83 EE 04 Ĕ.
|
||
|
||
JNZ SHORT @@1
|
||
|
||
59DB3A 75 F7 u÷
|
||
|
||
ADD EBP, EAX
|
||
|
||
59DB3C 03 E8 .è
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DB3E 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DB41 8D 6D 04 <20>m.
|
||
|
||
JMP EDX
|
||
|
||
59DB44 FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
Code NR> ;( R: x1 ... xn n -- D: x1 ... xn n )
|
||
|
||
59DB46 60 DB 59 00 00 03 4E 52 3E 1F DB 59 00 00 00 00 `ÛY...NR>.ÛY....
|
||
59DB56 00 00 00 00 00 00 00 00 00 00 ..........
|
||
|
||
; <20>¥à¥¥á⨠n ç¨á¥« á® á⥪ ¢®§¢à ⮢ á⥪ ¤ ëå
|
||
; …᫨ n=0 ¢®§¢à â¨âì 0
|
||
POP EDX ; ¤à¥á ¢®§¢à â
|
||
|
||
59DB60 5A Z
|
||
|
||
LEA EBP, [EBP-4]
|
||
|
||
59DB61 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59DB64 89 45 00 ‰E.
|
||
|
||
POP EAX
|
||
|
||
59DB67 58 X
|
||
|
||
OR EAX, EAX
|
||
|
||
59DB68 0B C0 .À
|
||
|
||
JNZ @@2
|
||
|
||
59DB6A 0F 85 02 00 00 00 .…....
|
||
|
||
JMP EDX
|
||
|
||
59DB70 FF E2 ÿâ
|
||
|
||
|
||
@@2: LEA EAX, [EAX*4]
|
||
|
||
59DB72 8D 04 85 00 00 00 00 <20>.…....
|
||
|
||
MOV ESI, EAX
|
||
|
||
59DB79 8B F0 ‹ð
|
||
|
||
@@1:
|
||
MOV EBX, EBP
|
||
|
||
59DB7B 8B DD ‹Ý
|
||
|
||
SUB EBX, ESI
|
||
|
||
59DB7D 2B DE +Þ
|
||
|
||
POP DWORD PTR [EBX]
|
||
|
||
59DB7F 8F 03 <20>.
|
||
|
||
SUB ESI, 4
|
||
|
||
59DB81 83 EE 04 Ĕ.
|
||
|
||
JNZ SHORT @@1
|
||
|
||
59DB84 75 F5 uõ
|
||
|
||
SUB EBP, EAX
|
||
|
||
59DB86 2B E8 +è
|
||
|
||
SAR EAX, 2
|
||
|
||
59DB88 C1 F8 02 Áø.
|
||
|
||
JMP EDX
|
||
|
||
59DB8B FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
Code N>R ;( D: x1 ... xn n -- R: x1 ... xn n )
|
||
|
||
59DB8D A0 DB 59 00 00 03 4E 3E 52 4B DB 59 00 00 00 00 ÛY...N>RKÛY....
|
||
59DB9D 00 00 00 ...
|
||
|
||
; ¯¥à¥¥á⨠n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢
|
||
LEA EBP, [EBP-4]
|
||
|
||
59DBA0 8D 6D FC <20>mü
|
||
|
||
MOV [EBP], EAX
|
||
|
||
59DBA3 89 45 00 ‰E.
|
||
|
||
LEA EAX, [EAX*4+4]
|
||
|
||
59DBA6 8D 04 85 04 00 00 00 <20>.…....
|
||
|
||
|
||
POP EDX ; ¤à¥á ¢®§¢à â
|
||
|
||
59DBAD 5A Z
|
||
|
||
MOV ESI, EAX
|
||
|
||
59DBAE 8B F0 ‹ð
|
||
|
||
@@1:
|
||
PUSH DWORD PTR [EBP+ESI-4]
|
||
|
||
59DBB0 FF 74 2E FC ÿt.ü
|
||
|
||
SUB ESI, 4
|
||
|
||
59DBB4 83 EE 04 Ĕ.
|
||
|
||
JNZ SHORT @@1
|
||
|
||
59DBB7 75 F7 u÷
|
||
|
||
ADD EBP, EAX
|
||
|
||
59DBB9 03 E8 .è
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DBBB 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DBBE 8D 6D 04 <20>m.
|
||
|
||
JMP EDX
|
||
|
||
59DBC1 FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
Code NRCOPY ;( D: i*x i -- D: i*x i R: i*x i )
|
||
|
||
59DBC3 E0 DB 59 00 00 06 4E 52 43 4F 50 59 92 DB 59 00 àÛY...NRCOPY’ÛY.
|
||
59DBD3 00 00 00 00 00 00 00 00 00 00 00 00 00 .............
|
||
|
||
; ᪮¯¨à®¢ âì n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢
|
||
MOV ECX, EAX
|
||
|
||
59DBE0 8B C8 ‹È
|
||
|
||
LEA ECX, [ECX*4]
|
||
|
||
59DBE2 8D 0C 8D 00 00 00 00 <20>.<2E>....
|
||
|
||
|
||
POP EDX ; ¤à¥á ¢®§¢à â
|
||
|
||
59DBE9 5A Z
|
||
|
||
JECXZ @@2
|
||
|
||
59DBEA E3 0B ã.
|
||
|
||
MOV ESI, ECX
|
||
|
||
59DBEC 8B F1 ‹ñ
|
||
|
||
@@1:
|
||
PUSH DWORD PTR [ESI+EBP-4]
|
||
|
||
59DBEE FF 74 35 FC ÿt5ü
|
||
|
||
SUB ESI, 4
|
||
|
||
59DBF2 83 EE 04 Ĕ.
|
||
|
||
JNZ SHORT @@1
|
||
|
||
59DBF5 75 F7 u÷
|
||
|
||
@@2:
|
||
PUSH EAX
|
||
|
||
59DBF7 50 P
|
||
|
||
JMP EDX
|
||
|
||
59DBF8 FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
Code RP+@ ;( offs -- x )
|
||
|
||
59DBFA 10 DC 59 00 00 04 52 50 2B 40 C8 DB 59 00 00 00 .ÜY...RP+@ÈÛY...
|
||
59DC0A 00 00 00 00 00 00 ......
|
||
|
||
; ¢§ïâì ç¨á«® ᮠᬥ饨¥¬ offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢ (0 RP+@ == RP@)
|
||
MOV EAX, [EAX+ESP+4]
|
||
|
||
59DC10 8B 44 04 04 ‹D..
|
||
|
||
RET
|
||
|
||
59DC14 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code RP+ ;( offs -- addr )
|
||
|
||
59DC15 30 DC 59 00 00 03 52 50 2B FF DB 59 00 00 00 00 0ÜY...RP+ÿÛY....
|
||
59DC25 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; ¢§ïâì ¤à¥á ᮠᬥ饨¥¬ offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢
|
||
LEA EAX, [EAX+ESP+4]
|
||
|
||
59DC30 8D 44 04 04 <20>D..
|
||
|
||
RET
|
||
|
||
59DC34 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code RP+! ;( x offs -- )
|
||
|
||
59DC35 50 DC 59 00 00 04 52 50 2B 21 1A DC 59 00 00 00 PÜY...RP+!.ÜY...
|
||
59DC45 00 00 00 00 00 00 00 00 00 00 00 ...........
|
||
|
||
; § ¯¨á âì ç¨á«® x ¯® ᬥ饨î offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢
|
||
MOV EBX, [EBP]
|
||
|
||
59DC50 8B 5D 00 ‹].
|
||
|
||
MOV [EAX+ESP+4], EBX
|
||
|
||
59DC53 89 5C 04 04 ‰\..
|
||
|
||
LEA EBP, [EBP+8]
|
||
|
||
59DC57 8D 6D 08 <20>m.
|
||
|
||
MOV EAX, [EBP-4]
|
||
|
||
59DC5A 8B 45 FC ‹Eü
|
||
|
||
RET
|
||
|
||
59DC5D C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code RALLOT ;( n -- addr )
|
||
|
||
59DC5E 70 DC 59 00 00 06 52 41 4C 4C 4F 54 3A DC 59 00 pÜY...RALLOT:ÜY.
|
||
59DC6E 00 00 ..
|
||
|
||
; § १¥à¢¨à®¢ âì n ï祥ª á⥪¥ ¢®§¢à ⮢,
|
||
; ᤥ« ¥¬ á ¨¨æ¨ «¨§ 樥© ( â® ¥á«¨ ¡®«ìè¥ 8Š ¢ë¤¥«¨¬, exception ¬®¦¥â)
|
||
POP EDX
|
||
|
||
59DC70 5A Z
|
||
|
||
MOV ECX, EAX
|
||
|
||
59DC71 8B C8 ‹È
|
||
|
||
XOR EAX, EAX
|
||
|
||
59DC73 33 C0 3À
|
||
|
||
@@1: PUSH EAX
|
||
|
||
59DC75 50 P
|
||
|
||
DEC ECX
|
||
|
||
59DC76 49 I
|
||
|
||
JNZ SHORT @@1
|
||
|
||
59DC77 75 FC uü
|
||
|
||
MOV EAX, ESP
|
||
|
||
59DC79 8B C4 ‹Ä
|
||
|
||
JMP EDX
|
||
|
||
59DC7B FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
Code (RALLOT) ;( n -- )
|
||
|
||
59DC7D 90 DC 59 00 00 08 28 52 41 4C 4C 4F 54 29 63 DC <20>ÜY...(RALLOT)cÜ
|
||
59DC8D 59 00 00 Y..
|
||
|
||
; § १¥à¢¨à®¢ âì n ï祥ª á⥪¥ ¢®§¢à ⮢
|
||
POP EDX
|
||
|
||
59DC90 5A Z
|
||
|
||
MOV ECX, EAX
|
||
|
||
59DC91 8B C8 ‹È
|
||
|
||
XOR EAX, EAX
|
||
|
||
59DC93 33 C0 3À
|
||
|
||
@@1: PUSH EAX
|
||
|
||
59DC95 50 P
|
||
|
||
DEC ECX
|
||
|
||
59DC96 49 I
|
||
|
||
JNZ SHORT @@1
|
||
|
||
59DC97 75 FC uü
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DC99 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DC9C 8D 6D 04 <20>m.
|
||
|
||
JMP EDX
|
||
|
||
59DC9F FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
Code RFREE ;( n -- )
|
||
|
||
59DCA1 B0 DC 59 00 00 05 52 46 52 45 45 82 DC 59 00 °ÜY...RFREE‚ÜY.
|
||
|
||
; ¢¥àãâì n ï祥ª á⥪ ¢®§¢à ⮢
|
||
POP EDX
|
||
|
||
59DCB0 5A Z
|
||
|
||
LEA ESP, [ESP+EAX*4]
|
||
|
||
59DCB1 8D 24 84 <20>$„
|
||
|
||
MOV EAX, [EBP]
|
||
|
||
59DCB4 8B 45 00 ‹E.
|
||
|
||
LEA EBP, [EBP+4]
|
||
|
||
59DCB7 8D 6D 04 <20>m.
|
||
|
||
JMP EDX
|
||
|
||
59DCBA FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
Code (LocalsExit) ;( -- )
|
||
|
||
59DCBC E0 DC 59 00 00 0C 28 4C 6F 63 61 6C 73 45 78 69 àÜY...(LocalsExi
|
||
59DCCC 74 29 A6 DC 59 00 00 00 00 00 00 00 00 00 00 00 t)¦ÜY...........
|
||
59DCDC 00 00 00 00 ....
|
||
|
||
; ¢¥àãâì ¯ ¬ïâì ¢ á⥪ ¢®¢à ⮢, ç¨á«® ¡ ©â «¥¦¨â á⥪¥
|
||
POP EBX
|
||
|
||
59DCE0 5B [
|
||
|
||
ADD ESP, EBX
|
||
|
||
59DCE1 03 E3 .ã
|
||
|
||
RET
|
||
|
||
59DCE3 C3 Ã
|
||
|
||
EndCode
|
||
|
||
Code TIMER@ ;( -- tlo thi ) \ ’®«ìª® ¤«ï Intel Pentium ¨ ¢ëè¥!!!
|
||
|
||
59DCE4 00 DD 59 00 00 06 54 49 4D 45 52 40 C1 DC 59 00 .ÝY...TIMER@ÁÜY.
|
||
59DCF4 00 00 00 00 00 00 00 00 00 00 00 00 ............
|
||
|
||
; ‚®§¢à â¨âì § 票¥ â ©¬¥à ¯à®æ¥áá®à ª ª ud
|
||
MOV [EBP-4], EAX
|
||
|
||
59DD00 89 45 FC ‰Eü
|
||
|
||
RDTSC
|
||
|
||
59DD03 0F 31 .1
|
||
|
||
MOV [EBP-8], EDX
|
||
|
||
59DD05 89 55 F8 ‰Uø
|
||
|
||
LEA EBP, [EBP-8]
|
||
|
||
59DD08 8D 6D F8 <20>mø
|
||
|
||
XCHG EAX, [EBP]
|
||
|
||
59DD0B 87 45 00 ‡E.
|
||
|
||
RET
|
||
|
||
59DD0E C3 Ã
|
||
|
||
EndCode
|
||
|
||
\ „«ï ®áâ «ìëå ¯à®æ¥áá®à®¢ à ᪮¬¬¥â¨àã©â¥:
|
||
\ : TIMER@ 0 GetTickCount ;
|
||
|
||
Code TRAP-CODE ;( D: j*x u R: i*x i -- i*x u )
|
||
|
||
59DD0F 30 DD 59 00 00 09 54 52 41 50 2D 43 4F 44 45 E9 0ÝY...TRAP-CODEé
|
||
59DD1F DC 59 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ÜY..............
|
||
59DD2F 00 .
|
||
|
||
; ‚ᯮ¬®£ ⥫쮥 á«®¢® ¤«ï ¢®ááâ ®¢«¥¨ï § 票©, á®åà ¥ëå
|
||
; ¯¥à¥¤ CATCH á⥪¥ ¢®§¢à ⮢
|
||
POP EDX
|
||
|
||
59DD30 5A Z
|
||
|
||
POP ESI
|
||
|
||
59DD31 5E ^
|
||
|
||
OR ESI, ESI
|
||
|
||
59DD32 0B F6 .ö
|
||
|
||
JZ @@2
|
||
|
||
59DD34 0F 84 18 00 00 00 .„....
|
||
|
||
LEA ESI, [ESI*4]
|
||
|
||
59DD3A 8D 34 B5 00 00 00 00 <20>4µ....
|
||
|
||
MOV ECX, ESI
|
||
|
||
59DD41 8B CE ‹Î
|
||
|
||
@@1: MOV EBX, [ESI+ESP-4]
|
||
|
||
59DD43 8B 5C 34 FC ‹\4ü
|
||
|
||
MOV [ESI+EBP-4], EBX
|
||
|
||
59DD47 89 5C 35 FC ‰\5ü
|
||
|
||
SUB ESI, 4
|
||
|
||
59DD4B 83 EE 04 Ĕ.
|
||
|
||
JNZ SHORT @@1
|
||
|
||
59DD4E 75 F3 uó
|
||
|
||
ADD ESP, ECX
|
||
|
||
59DD50 03 E1 .á
|
||
|
||
@@2: JMP EDX
|
||
|
||
59DD52 FF E2 ÿâ
|
||
|
||
EndCode
|
||
|
||
DECIMAL
|
||
ZZ=D0 |