kolibrios/programs/develop/SPForth/src/spf_forthproc.f_L
Kirill Lipatov (Leency) 09488af869 KolSPForth12 uploaded to SVN
git-svn-id: svn://kolibrios.org@4867 a494cfbc-eb01-0410-851d-a64ba20cac60
2014-04-21 19:22:58 +00:00

4076 lines
62 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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
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>
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
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>
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>
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>
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>
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>
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
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
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
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>
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
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>
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>
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>
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>
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
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
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
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>
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>
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>
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>
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
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>
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