Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ZZ=D0 ( Žá­®¢­ë¥ ­¨§ª®ã஢­¥¢ë¥ á«®¢  "ä®àâ-¯à®æ¥áá®à "
  2.   Copyright [C] 1992-1999 A.Cherezov ac@forth.org
  3.   à¥®¡à §®¢ ­¨¥ ¨§ 16-à §à來®£® ¢ 32-à §àï¤­ë© ª®¤ - 1995-96££
  4.   ¥¢¨§¨ï - ᥭâï¡àì 1999
  5. )
  6.  
  7. ( ¥ «¨§ æ¨ï ¤«ï ¯®¤¯à®£à ¬¬­®£® è¨â®£® ª®¤ .
  8.   ESP - 㪠§ â¥«ì á⥪  ¢®§¢à â®¢
  9.   EBP - 㪠§ â¥«ì á⥪  ¤ ­­ëå
  10.   EDI - á®åà ­ï¥¬ë© à¥£¨áâà [㪠§ â¥«ì ¤ ­­ëå ¯®â®ª  ¢ SPF]
  11. )
  12.  
  13. HEX
  14.  
  15. \ ================================================================
  16. \ ‘⥪®¢ë¥ ¬ ­¨¯ã«ï樨
  17.  
  18. ?HS
  19.  
  20. Code DUP ;( x -- x x ) \ 94
  21.  
  22. 59CB58  70 CB 59 00  00 03 44 55  50 E1 32 58  00 00 00 00 pËY...DUPá2X....
  23. 59CB68  00 00 00 00  00 00 00 00 ........
  24.  
  25. ; à®¤ã¡«¨à®¢ âì x.
  26.      LEA EBP, [EBP-4]
  27.  
  28. 59CB70  8D 6D FC mü
  29.  
  30.      mov [ebp],eax
  31.  
  32. 59CB73  89 45 00 ‰E.
  33.  
  34.      RET
  35.  
  36. 59CB76  C3 Ã
  37.  
  38. EndCode
  39.  
  40.  
  41. \ ' DUP TO 'DUP_V
  42.  
  43. Code ?DUP ;( x -- 0 | x x ) \ 94
  44.  
  45. 59CB77  90 CB 59 00  00 04 3F 44  55 50 5D CB  59 00 00 00 ËY...?DUP]ËY...
  46. 59CB87  00 00 00 00  00 00 00 00  00 .........
  47.  
  48. ; à®¤ã¡«¨à®¢ âì x, ¥á«¨ ­¥ ­®«ì.
  49.      OR  EAX, EAX
  50.  
  51. 59CB90  0B C0 .À
  52.  
  53.      JNZ { ' DUP }
  54.  
  55. 59CB92  75 DC uÜ
  56.  
  57.      RET
  58.  
  59. 59CB94  C3 Ã
  60.  
  61. EndCode
  62.  
  63. Code 2DUP ;( x1 x2 -- x1 x2 x1 x2 ) \ 94
  64.  
  65. 59CB95  B0 CB 59 00  00 04 32 44  55 50 7C CB  59 00 00 00 °ËY...2DUP|ËY...
  66. 59CBA5  00 00 00 00  00 00 00 00  00 00 00 ...........
  67.  
  68. ; à®¤ã¡«¨à®¢ âì ¯ àã ï祥ª x1 x2.
  69.      MOV EDX, [EBP]
  70.  
  71. 59CBB0  8B 55 00 ‹U.
  72.  
  73.      MOV [EBP-4], EAX
  74.  
  75. 59CBB3  89 45 FC ‰Eü
  76.  
  77.      MOV [EBP-8], EDX
  78.  
  79. 59CBB6  89 55 F8 ‰Uø
  80.  
  81.      LEA EBP, [EBP-8]
  82.  
  83. 59CBB9  8D 6D F8 mø
  84.  
  85.      RET
  86.  
  87. 59CBBC  C3 Ã
  88.  
  89. EndCode
  90.  
  91. Code DROP ;( x -- ) \ 94
  92.  
  93. 59CBBD  D0 CB 59 00  00 04 44 52  4F 50 9A CB  59 00 00 00 ÐËY...DROPšËY...
  94. 59CBCD  00 00 00 ...
  95.  
  96. ; “¡à âì x á® á⥪ .
  97.      mov eax,[ebp]
  98.  
  99. 59CBD0  8B 45 00 ‹E.
  100.  
  101.      LEA EBP, [EBP+4]
  102.  
  103. 59CBD3  8D 6D 04 m.
  104.  
  105.      RET
  106.  
  107. 59CBD6  C3 Ã
  108.  
  109. EndCode
  110.  
  111. \ ' DROP TO 'DROP_V
  112.  
  113. Code MAX ;( n1 n2 -- n3 ) \ 94
  114.  
  115. 59CBD7  F0 CB 59 00  00 03 4D 41  58 C2 CB 59  00 00 00 00 ðËY...MAXÂËY....
  116. 59CBE7  00 00 00 00  00 00 00 00  00 .........
  117.  
  118. ; n3 - ¡®«ì襥 ¨§ n1 ¨ n2.
  119.      CMP EAX, [EBP]
  120.  
  121. 59CBF0  3B 45 00 ;E.
  122.  
  123.      JL  { ' DROP }
  124.  
  125. 59CBF3  7C DB |Û
  126.  
  127.      LEA EBP, [EBP+4]
  128.  
  129. 59CBF5  8D 6D 04 m.
  130.  
  131.      RET
  132.  
  133. 59CBF8  C3 Ã
  134.  
  135. EndCode
  136.  
  137. Code MIN ;( n1 n2 -- n3 ) \ 94
  138.  
  139. 59CBF9  10 CC 59 00  00 03 4D 49  4E DC CB 59  00 00 00 00 .ÌY...MINÜËY....
  140. 59CC09  00 00 00 00  00 00 00 .......
  141.  
  142.  ; n3 - ¬¥­ì襥 ¨§ n1 ¨ n2.
  143.      CMP EAX, [EBP]
  144.  
  145. 59CC10  3B 45 00 ;E.
  146.  
  147.      JG  { ' DROP }
  148.  
  149. 59CC13  7F BB »
  150.  
  151.      LEA EBP, [EBP+4]
  152.  
  153. 59CC15  8D 6D 04 m.
  154.  
  155.      RET
  156.  
  157. 59CC18  C3 Ã
  158.  
  159. EndCode
  160.  
  161. Code UMAX       ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and
  162.  
  163. 59CC19  30 CC 59 00  00 04 55 4D  41 58 FE CB  59 00 00 00 0ÌY...UMAXþËY...
  164. 59CC29  00 00 00 00  00 00 00 .......
  165.  
  166.                                 ; unsigned u2
  167.      CMP  EAX, [EBP]
  168.  
  169. 59CC30  3B 45 00 ;E.
  170.  
  171.      JB { ' DROP }
  172.  
  173. 59CC33  72 9B r›
  174.  
  175.      LEA EBP, [EBP+4]
  176.  
  177. 59CC35  8D 6D 04 m.
  178.  
  179.      RET
  180.  
  181. 59CC38  C3 Ã
  182.  
  183. EndCode
  184.  
  185. Code UMIN       ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and
  186.  
  187. 59CC39  50 CC 59 00  00 04 55 4D  49 4E 1E CC  59 00 00 00 PÌY...UMIN.ÌY...
  188. 59CC49  00 00 00 00  00 00 00 .......
  189.  
  190.                                 ; unsigned u2
  191.      CMP EAX, [EBP]
  192.  
  193. 59CC50  3B 45 00 ;E.
  194.  
  195.      JA { ' DROP }
  196.  
  197. 59CC53  0F 87 77 FF  FF FF .‡wÿÿÿ
  198.  
  199.      LEA EBP, [EBP+4]
  200.  
  201. 59CC59  8D 6D 04 m.
  202.  
  203.      RET
  204.  
  205. 59CC5C  C3 Ã
  206.  
  207. EndCode
  208.  
  209. Code 2DROP ;( x1 x2 -- ) \ 94
  210.  
  211. 59CC5D  70 CC 59 00  00 05 32 44  52 4F 50 3E  CC 59 00 00 pÌY...2DROP>ÌY..
  212. 59CC6D  00 00 00 ...
  213.  
  214. ; “¡à âì á® á⥪  ¯ àã ï祥ª x1 x2.
  215.      MOV     EAX , [EBP+4]
  216.  
  217. 59CC70  8B 45 04 ‹E.
  218.  
  219.      ADD     EBP , 8
  220.  
  221. 59CC73  83 C5 08 ƒÅ.
  222.  
  223.      RET
  224.  
  225. 59CC76  C3 Ã
  226.  
  227. EndCode
  228.  
  229. Code SWAP ;( x1 x2 -- x2 x1 ) \ 94
  230.  
  231. 59CC77  90 CC 59 00  00 04 53 57  41 50 62 CC  59 00 00 00 ÌY...SWAPbÌY...
  232. 59CC87  00 00 00 00  00 00 00 00  00 .........
  233.  
  234. ; ¯®¬¥­ïâì ¬¥áâ ¬¨ ¤¢  ¢¥àå­¨å í«¥¬¥­â  á⥪ 
  235. ;     XCHG EAX  { EBP }
  236.      MOV   EDX, [EBP]
  237.  
  238. 59CC90  8B 55 00 ‹U.
  239.  
  240.      MOV   [EBP],  EAX
  241.  
  242. 59CC93  89 45 00 ‰E.
  243.  
  244.      MOV   EAX, EDX
  245.  
  246. 59CC96  8B C2 ‹Â
  247.  
  248.      RET
  249.  
  250. 59CC98  C3 Ã
  251.  
  252. EndCode
  253.  
  254. Code 2SWAP ;( x1 x2 x3 x4 -- x3 x4 x1 x2 ) \ 94
  255.  
  256. 59CC99  B0 CC 59 00  00 05 32 53  57 41 50 7C  CC 59 00 00 °ÌY...2SWAP|ÌY..
  257. 59CCA9  00 00 00 00  00 00 00 .......
  258.  
  259. ; ®¬¥­ïâì ¬¥áâ ¬¨ ¤¢¥ ¢¥àå­¨¥ ¯ àë ï祥ª.
  260.      MOV ECX, [EBP]
  261.  
  262. 59CCB0  8B 4D 00 ‹M.
  263.  
  264.      MOV EBX, [EBP+4]
  265.  
  266. 59CCB3  8B 5D 04 ‹].
  267.  
  268.      MOV EDX, [EBP+8]
  269.  
  270. 59CCB6  8B 55 08 ‹U.
  271.  
  272.      MOV [EBP+8], ECX
  273.  
  274. 59CCB9  89 4D 08 ‰M.
  275.  
  276.      MOV [EBP+4], EAX
  277.  
  278. 59CCBC  89 45 04 ‰E.
  279.  
  280.      MOV [EBP], EDX
  281.  
  282. 59CCBF  89 55 00 ‰U.
  283.  
  284.      MOV EAX, EBX
  285.  
  286. 59CCC2  8B C3 ‹Ã
  287.  
  288.      RET
  289.  
  290. 59CCC4  C3 Ã
  291.  
  292. EndCode
  293.  
  294. Code OVER ;( x1 x2 -- x1 x2 x1 ) \ 94
  295.  
  296. 59CCC5  E0 CC 59 00  00 04 4F 56  45 52 9E CC  59 00 00 00 àÌY...OVERžÌY...
  297. 59CCD5  00 00 00 00  00 00 00 00  00 00 00 ...........
  298.  
  299. ; ®«®¦¨âì ª®¯¨î x1 ­  ¢¥à設ã á⥪ .
  300.      LEA EBP, [EBP-4]
  301.  
  302. 59CCE0  8D 6D FC mü
  303.  
  304.      MOV  [EBP],  EAX
  305.  
  306. 59CCE3  89 45 00 ‰E.
  307.  
  308.      MOV  EAX, [EBP+4]
  309.  
  310. 59CCE6  8B 45 04 ‹E.
  311.  
  312.      RET
  313.  
  314. 59CCE9  C3 Ã
  315.  
  316. EndCode
  317.  
  318. Code 2OVER ;( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) \ 94
  319.  
  320. 59CCEA  00 CD 59 00  00 05 32 4F  56 45 52 CA  CC 59 00 00 .ÍY...2OVERÊÌY..
  321. 59CCFA  00 00 00 00  00 00 ......
  322.  
  323. ; Š®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 ­  ¢¥à設ã á⥪ .
  324.      MOV EDX, [EBP+8]
  325.  
  326. 59CD00  8B 55 08 ‹U.
  327.  
  328.      MOV [EBP-4], EAX
  329.  
  330. 59CD03  89 45 FC ‰Eü
  331.  
  332.      MOV [EBP-8], EDX
  333.  
  334. 59CD06  89 55 F8 ‰Uø
  335.  
  336.      MOV EAX, [EBP+4]
  337.  
  338. 59CD09  8B 45 04 ‹E.
  339.  
  340.      LEA EBP, [EBP-8]
  341.  
  342. 59CD0C  8D 6D F8 mø
  343.  
  344.      RET
  345.  
  346. 59CD0F  C3 Ã
  347.  
  348. EndCode
  349.  
  350. Code NIP ;( x1 x2 -- x2 ) \ 94 CORE EXT
  351.  
  352. 59CD10  20 CD 59 00  00 03 4E 49  50 EF CC 59  00 00 00 00  ÍY...NIPïÌY....
  353.  
  354. ; “¡à âì ¯¥à¢ë© í«¥¬¥­â ¯®¤ ¢¥à設®© á⥪ .
  355.      ADD EBP,  4
  356.  
  357. 59CD20  83 C5 04 ƒÅ.
  358.  
  359.      RET
  360.  
  361. 59CD23  C3 Ã
  362.  
  363. EndCode
  364.  
  365. Code ROT ;( x1 x2 x3 -- x2 x3 x1 ) \ 94
  366.  
  367. 59CD24  40 CD 59 00  00 03 52 4F  54 15 CD 59  00 00 00 00 @ÍY...ROT.ÍY....
  368. 59CD34  00 00 00 00  00 00 00 00  00 00 00 00 ............
  369.  
  370. ; à®ªàãâ¨âì âਠ¢¥àå­¨å í«¥¬¥­â  á⥪ .
  371. ;     XCHG EAX     [EBP]
  372. ;     XCHG EAX   4  [EBP]
  373.      MOV  EDX, [EBP]
  374.  
  375. 59CD40  8B 55 00 ‹U.
  376.  
  377.      MOV  [EBP], EAX
  378.  
  379. 59CD43  89 45 00 ‰E.
  380.  
  381.      MOV  EAX, [EBP+4]
  382.  
  383. 59CD46  8B 45 04 ‹E.
  384.  
  385.      MOV  [EBP+4], EDX
  386.  
  387. 59CD49  89 55 04 ‰U.
  388.  
  389.      RET
  390.  
  391. 59CD4C  C3 Ã
  392.  
  393. EndCode
  394.  
  395.  
  396. Code -ROT ;( x1 x2 x3 -- x3 x1 x2 ) ; !!!!!
  397.  
  398. 59CD4D  60 CD 59 00  00 04 2D 52  4F 54 29 CD  59 00 00 00 `ÍY...-ROT)ÍY...
  399. 59CD5D  00 00 00 ...
  400.  
  401. ; Ž¡à â­®¥ ROT
  402.      MOV  EDX, [EBP+4]
  403.  
  404. 59CD60  8B 55 04 ‹U.
  405.  
  406.      MOV  [EBP+4], EAX
  407.  
  408. 59CD63  89 45 04 ‰E.
  409.  
  410.      MOV  EAX, [EBP]
  411.  
  412. 59CD66  8B 45 00 ‹E.
  413.  
  414.      MOV  [EBP], EDX
  415.  
  416. 59CD69  89 55 00 ‰U.
  417.  
  418.      RET
  419.  
  420. 59CD6C  C3 Ã
  421.  
  422. EndCode
  423.  
  424. Code PICK      ;( ... +n -- ... w ) \ Copy the nth stack item to tos.
  425.  
  426. 59CD6D  80 CD 59 00  00 04 50 49  43 4B 52 CD  59 00 00 00 €ÍY...PICKRÍY...
  427. 59CD7D  00 00 00 ...
  428.  
  429.       MOV    EAX, [EBP + EAX*4 ]
  430.  
  431. 59CD80  8B 44 85 00 ‹D….
  432.  
  433.       RET
  434.  
  435. 59CD84  C3 Ã
  436.  
  437. EndCode
  438.  
  439. Code ROLL ;( xu xu-1 ... x0 u -- xu-1 ... x0 xu ) \ 94 CORE EXT
  440.  
  441. 59CD85  A0 CD 59 00  00 04 52 4F  4C 4C 72 CD  59 00 00 00  ÍY...ROLLrÍY...
  442. 59CD95  00 00 00 00  00 00 00 00  00 00 00 ...........
  443.  
  444. ; “¡à âì u. ®¢¥à­ãâì u+1 í«¥¬¥­â ­  ¢¥à設¥ á⥪ .
  445. ; ¥®¯à¥¤¥«¥­­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ ¯¥à¥¤ ¢ë¯®«­¥­¨¥¬ ROLL
  446. ; ­  á⥪¥ ¬¥­ìè¥ ç¥¬ u+2 í«¥¬¥­â®¢.
  447.      OR EAX, EAX
  448.  
  449. 59CDA0  0B C0 .À
  450.  
  451.      JZ SHORT LL1
  452.  
  453. 59CDA2  74 1E t.
  454.  
  455.      MOV ECX, EAX
  456.  
  457. 59CDA4  8B C8 ‹È
  458.  
  459.      LEA EAX, [EAX*4]
  460.  
  461. 59CDA6  8D 04 85 00  00 00 00 .…....
  462.  
  463.      MOV EDX, EBP
  464.  
  465. 59CDAD  8B D5 ‹Õ
  466.  
  467.      ADD EDX, EAX
  468.  
  469. 59CDAF  03 D0 .Ð
  470.  
  471.      MOV EBX, [EDX]
  472.  
  473. 59CDB1  8B 1A ‹.
  474.  
  475. LL2: LEA EDX, [EDX-4]
  476.  
  477. 59CDB3  8D 52 FC Rü
  478.  
  479.      MOV EAX, [EDX]
  480.  
  481. 59CDB6  8B 02 ‹.
  482.  
  483.      MOV [EDX+4], EAX
  484.  
  485. 59CDB8  89 42 04 ‰B.
  486.  
  487.      DEC ECX
  488.  
  489. 59CDBB  49 I
  490.  
  491.      JNZ SHORT LL2
  492.  
  493. 59CDBC  75 F5 uõ
  494.  
  495.      MOV EAX, EBX
  496.  
  497. 59CDBE  8B C3 ‹Ã
  498.  
  499.      JMP SHORT LL3
  500.  
  501. 59CDC0  EB 03 ë.
  502.  
  503. LL1: MOV EAX, [EBP]
  504.  
  505. 59CDC2  8B 45 00 ‹E.
  506.  
  507. LL3: LEA EBP, [EBP+4]
  508.  
  509. 59CDC5  8D 6D 04 m.
  510.  
  511.      RET
  512.  
  513. 59CDC8  C3 Ã
  514.  
  515. EndCode
  516.  
  517. Code TUCK ;( x1 x2 -- x2 x1 x2 ) \ 94
  518.  
  519. 59CDC9  E0 CD 59 00  00 04 54 55  43 4B 8A CD  59 00 00 00 àÍY...TUCKŠÍY...
  520. 59CDD9  00 00 00 00  00 00 00 .......
  521.  
  522.      LEA EBP, [EBP-4]
  523.  
  524. 59CDE0  8D 6D FC mü
  525.  
  526.      MOV  EDX, [EBP+4]
  527.  
  528. 59CDE3  8B 55 04 ‹U.
  529.  
  530.      MOV  [EBP],  EDX
  531.  
  532. 59CDE6  89 55 00 ‰U.
  533.  
  534.      MOV  [EBP+4],  EAX
  535.  
  536. 59CDE9  89 45 04 ‰E.
  537.  
  538.      RET
  539.  
  540. 59CDEC  C3 Ã
  541.  
  542. EndCode
  543.  
  544. \ ================================================================
  545. \ ‘⥪ ¢®§¢à â®¢
  546.  
  547. Code 2>R   ; 94 CORE EXT
  548.  
  549. 59CDED  00 CE 59 00  00 03 32 3E  52 CE CD 59  00 00 00 00 .ÎY...2>RÎÍY....
  550. 59CDFD  00 00 00 ...
  551.  
  552. ; ˆ­â¥à¯à¥â æ¨ï: ᥬ ­â¨ª  ­¥®¯à¥¤¥«¥­ .
  553. ; ‚믮«­¥­¨¥: ;( x1 x2 -- ) ;( R: -- x1 x2 )
  554. ; ¥à¥­¥á⨠¯ àã ï祥ª x1 x2 ­  á⥪ ¢®§¢à â®¢. ‘¥¬ ­â¨ç¥áª¨
  555. ; íª¢¨¢ «¥­â­® SWAP >R >R.
  556.      POP   EBX
  557.  
  558. 59CE00  5B [
  559.  
  560.      PUSH  DWORD PTR [EBP]
  561.  
  562. 59CE01  FF 75 00 ÿu.
  563.  
  564.      PUSH  EAX
  565.  
  566. 59CE04  50 P
  567.  
  568.      LEA   EBP, [EBP+8]
  569.  
  570. 59CE05  8D 6D 08 m.
  571.  
  572.      MOV   EAX, [EBP-4]
  573.  
  574. 59CE08  8B 45 FC ‹Eü
  575.  
  576.      JMP   EBX
  577.  
  578. 59CE0B  FF E3 ÿã
  579.  
  580. EndCode
  581.  
  582. Code 2R>  ; 94 CORE EXT
  583.  
  584. 59CE0D  20 CE 59 00  00 03 32 52  3E F2 CD 59  00 00 00 00  ÎY...2R>òÍY....
  585. 59CE1D  00 00 00 ...
  586.  
  587. ; ˆ­â¥à¯à¥â æ¨ï: ᥬ ­â¨ª  ­¥®¯à¥¤¥«¥­ .
  588. ; ‚믮«­¥­¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- )
  589. ; ¥à¥­¥á⨠¯ àã ï祥ª x1 x2 á® á⥪  ¢®§¢à â®¢. ‘¥¬ ­â¨ç¥áª¨
  590. ; íª¢¨¢ «¥­â­® R> R> SWAP.  \ !!!!
  591.      LEA EBP, [EBP-8]
  592.  
  593. 59CE20  8D 6D F8 mø
  594.  
  595.      POP EBX
  596.  
  597. 59CE23  5B [
  598.  
  599.      MOV [EBP+4], EAX
  600.  
  601. 59CE24  89 45 04 ‰E.
  602.  
  603.      POP EAX
  604.  
  605. 59CE27  58 X
  606.  
  607.      POP DWORD PTR [EBP]
  608.  
  609. 59CE28  8F 45 00 E.
  610.  
  611.      PUSH EBX
  612.  
  613. 59CE2B  53 S
  614.  
  615.      RET
  616.  
  617. 59CE2C  C3 Ã
  618.  
  619. EndCode
  620.  
  621. Code R@    ; 94
  622.  
  623. 59CE2D  40 CE 59 00  00 02 52 40  12 CE 59 00  00 00 00 00 @ÎY...R@.ÎY.....
  624. 59CE3D  00 00 00 ...
  625.  
  626. ; ˆá¯®«­¥­¨¥: ;( -- x ) ;( R: x -- x )
  627. ; ˆ­â¥à¯à¥â æ¨ï: ᥬ ­â¨ª  ¢ ०¨¬¥ ¨­â¥à¯à¥â æ¨¨ ­¥®¯à¥¤¥«¥­ .
  628.      LEA EBP, [EBP-4]
  629.  
  630. 59CE40  8D 6D FC mü
  631.  
  632.      MOV [EBP], EAX
  633.  
  634. 59CE43  89 45 00 ‰E.
  635.  
  636.      MOV EAX, [ESP + 4 ]
  637.  
  638. 59CE46  8B 44 24 04 ‹D$.
  639.  
  640.      RET
  641.  
  642. 59CE4A  C3 Ã
  643.  
  644. EndCode
  645.  
  646. Code 2R@  ; 94 CORE EXT
  647.  
  648. 59CE4B  60 CE 59 00  00 03 32 52  40 32 CE 59  00 00 00 00 `ÎY...2R@2ÎY....
  649. 59CE5B  00 00 00 00  00 .....
  650.  
  651. ; ˆ­â¥à¯à¥â æ¨ï: ᥬ ­â¨ª  ­¥®¯à¥¤¥«¥­ .
  652. ; ‚믮«­¥­¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- x1 x2 )
  653. ; Š®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 á® á⥪  ¢®§¢à â®¢. ‘¥¬ ­â¨ç¥áª¨
  654. ; íª¢¨¢ «¥­â­® R> R> 2DUP >R >R SWAP.
  655.      LEA EBP, [EBP-8]
  656.  
  657. 59CE60  8D 6D F8 mø
  658.  
  659.      MOV [EBP+4], EAX
  660.  
  661. 59CE63  89 45 04 ‰E.
  662.  
  663.      MOV EAX, [ESP + { 2 CELLS } ]
  664.  
  665. 59CE66  8B 44 24 08 ‹D$.
  666.  
  667.      MOV DWORD PTR [EBP],  EAX
  668.  
  669. 59CE6A  89 45 00 ‰E.
  670.  
  671.      MOV  EAX, [ESP + 4 ]
  672.  
  673. 59CE6D  8B 44 24 04 ‹D$.
  674.  
  675.      RET
  676.  
  677. 59CE71  C3 Ã
  678.  
  679. EndCode
  680.  
  681. \ ================================================================
  682. \ Ž¯¥à æ¨¨ á ¯ ¬ïâìî
  683.  
  684. Code @ ;( a-addr -- x ) \ 94
  685.  
  686. 59CE72  80 CE 59 00  00 01 40 50  CE 59 00 00  00 00 €ÎY...@PÎY....
  687.  
  688. ; x - §­ ç¥­¨¥ ¯®  ¤à¥áã a-addr.
  689.      MOV EAX, [EAX ]
  690.  
  691. 59CE80  8B 00 ‹.
  692.  
  693.      RET
  694.  
  695. 59CE82  C3 Ã
  696.  
  697. EndCode
  698.  
  699. Code ! ;( x a-addr -- ) \ 94
  700.  
  701. 59CE83  90 CE 59 00  00 01 21 77  CE 59 00 00  00 ÎY...!wÎY...
  702.  
  703. ; ‡ ¯¨á âì x ¯®  ¤à¥áã a-addr.
  704.      MOV EDX, [EBP]
  705.  
  706. 59CE90  8B 55 00 ‹U.
  707.  
  708.      MOV DWORD PTR [EAX ],  EDX
  709.  
  710. 59CE93  89 10 ‰.
  711.  
  712.      MOV EAX , [EBP+4]
  713.  
  714. 59CE95  8B 45 04 ‹E.
  715.  
  716.      ADD EBP , 8
  717.  
  718. 59CE98  83 C5 08 ƒÅ.
  719.  
  720.      RET
  721.  
  722. 59CE9B  C3 Ã
  723.  
  724. EndCode
  725.  
  726. Code C@ ;( c-addr -- char ) \ 94
  727.  
  728. 59CE9C  B0 CE 59 00  00 02 43 40  88 CE 59 00  00 00 00 00 °ÎY...C@ˆÎY.....
  729. 59CEAC  00 00 00 00 ....
  730.  
  731. ; ®«ãç¨âì ᨬ¢®« ¯®  ¤à¥áã c-addr. ¥§­ ç é¨¥ áâ à訥 ¡¨âë ï祩ª¨ ­ã«¥¢ë¥.
  732.      MOVZX EAX, BYTE PTR [EAX ]
  733.  
  734. 59CEB0  0F B6 00 .¶.
  735.  
  736.      RET
  737.  
  738. 59CEB3  C3 Ã
  739.  
  740. EndCode
  741.  
  742. Code C! ;( char c-addr -- ) \ 94
  743.  
  744. 59CEB4  C0 CE 59 00  00 02 43 21  A1 CE 59 00 ÀÎY...C!¡ÎY.
  745.  
  746. ; ‡ ¯¨á âì char ¯®  ¤à¥áã a-addr.
  747.      MOV EDX, [EBP]
  748.  
  749. 59CEC0  8B 55 00 ‹U.
  750.  
  751.      MOV BYTE PTR [EAX ],  DL
  752.  
  753. 59CEC3  88 10 ˆ.
  754.  
  755.      MOV EAX , [EBP+4]
  756.  
  757. 59CEC5  8B 45 04 ‹E.
  758.  
  759.      ADD EBP , 8
  760.  
  761. 59CEC8  83 C5 08 ƒÅ.
  762.  
  763.      RET
  764.  
  765. 59CECB  C3 Ã
  766.  
  767. EndCode
  768.  
  769. Code W@ ;( c-addr -- word )
  770.  
  771. 59CECC  E0 CE 59 00  00 02 57 40  B9 CE 59 00  00 00 00 00 àÎY...W@¹ÎY.....
  772. 59CEDC  00 00 00 00 ....
  773.  
  774. ; ®«ãç¨âì word ¯®  ¤à¥áã c-addr. ¥§­ ç é¨¥ áâ à訥 ¡¨âë ï祩ª¨ ­ã«¥¢ë¥.
  775.      MOVZX   EAX, WORD PTR [EAX ]
  776.  
  777. 59CEE0  0F B7 00 .·.
  778.  
  779.      RET
  780.  
  781. 59CEE3  C3 Ã
  782.  
  783. EndCode
  784.  
  785. Code W! ;( word c-addr -- )
  786.  
  787. 59CEE4  F0 CE 59 00  00 02 57 21  D1 CE 59 00 ðÎY...W!ÑÎY.
  788.  
  789. ; ‡ ¯¨á âì word ¯®  ¤à¥áã a-addr.
  790.      MOV EDX, [EBP]
  791.  
  792. 59CEF0  8B 55 00 ‹U.
  793.  
  794.      MOV WORD PTR [EAX ],  DX
  795.  
  796. 59CEF3  66 89 10 f‰.
  797.  
  798.      MOV   EAX , [EBP+4]
  799.  
  800. 59CEF6  8B 45 04 ‹E.
  801.  
  802.      ADD   EBP , 8
  803.  
  804. 59CEF9  83 C5 08 ƒÅ.
  805.  
  806.      RET
  807.  
  808. 59CEFC  C3 Ã
  809.  
  810. EndCode
  811.  
  812. Code 2@ ;( a-addr -- x1 x2 ) \ 94
  813.  
  814. 59CEFD  10 CF 59 00  00 02 32 40  E9 CE 59 00  00 00 00 00 .ÏY...2@éÎY.....
  815. 59CF0D  00 00 00 ...
  816.  
  817. ; ®«ãç¨âì ¯ àã ï祥ª x1 x2, § ¯¨á ­­ãî ¯®  ¤à¥áã a-addr.
  818. ; x2 ¯®  ¤à¥áã a-addr, x1 ¢ á«¥¤ãî饩 ï祩ª¥.
  819. ;  ¢­®á¨«ì­® DUP CELL+ @ SWAP @
  820.      MOV EDX, [EAX + 4 ]
  821.  
  822. 59CF10  8B 50 04 ‹P.
  823.  
  824.      LEA EBP, [EBP-4]
  825.  
  826. 59CF13  8D 6D FC mü
  827.  
  828.      MOV DWORD PTR [EBP],  EDX
  829.  
  830. 59CF16  89 55 00 ‰U.
  831.  
  832.      MOV EAX,    DWORD PTR [EAX ]
  833.  
  834. 59CF19  8B 00 ‹.
  835.  
  836.      RET
  837.  
  838. 59CF1B  C3 Ã
  839.  
  840. EndCode
  841.  
  842. Code 2! ;( x1 x2 a-addr -- ) \ 94
  843.  
  844. 59CF1C  30 CF 59 00  00 02 32 21  02 CF 59 00  00 00 00 00 0ÏY...2!.ÏY.....
  845. 59CF2C  00 00 00 00 ....
  846.  
  847. ; ‡ ¯¨á âì ¯ àã ï祥ª x1 x2 ¯®  ¤à¥áã a-addr,
  848. ; x2 ¯®  ¤à¥áã a-addr, x1 ¢ á«¥¤ãîéãî ï祩ªã.
  849. ;  ¢­®á¨«ì­® SWAP OVER ! CELL+ !
  850.      MOV EDX, [EBP]
  851.  
  852. 59CF30  8B 55 00 ‹U.
  853.  
  854.      MOV [EAX], EDX
  855.  
  856. 59CF33  89 10 ‰.
  857.  
  858.      MOV EDX, [EBP+4]
  859.  
  860. 59CF35  8B 55 04 ‹U.
  861.  
  862.      MOV [EAX+4], EDX
  863.  
  864. 59CF38  89 50 04 ‰P.
  865.  
  866.      LEA EBP, [EBP+0CH]
  867.  
  868. 59CF3B  8D 6D 0C m.
  869.  
  870.      MOV EAX, [EBP-4]
  871.  
  872. 59CF3E  8B 45 FC ‹Eü
  873.  
  874.      RET
  875.  
  876. 59CF41  C3 Ã
  877.  
  878. EndCode
  879.  
  880. Code D@ ;( a-addr -- x1 x2 )
  881.  
  882. 59CF42  50 CF 59 00  00 02 44 40  21 CF 59 00  00 00 PÏY...D@!ÏY...
  883.  
  884. ; 2@ SWAP
  885.      MOV EDX, [EAX]
  886.  
  887. 59CF50  8B 10 ‹.
  888.  
  889.      LEA EBP, [EBP-4]
  890.  
  891. 59CF52  8D 6D FC mü
  892.  
  893.      MOV DWORD PTR [EBP],  EDX
  894.  
  895. 59CF55  89 55 00 ‰U.
  896.  
  897.      MOV EAX,    DWORD PTR [EAX+4]
  898.  
  899. 59CF58  8B 40 04 ‹@.
  900.  
  901.      RET
  902.  
  903. 59CF5B  C3 Ã
  904.  
  905. EndCode
  906.  
  907. Code D! ;( x1 x2 a-addr -- )
  908.  
  909. 59CF5C  70 CF 59 00  00 02 44 21  47 CF 59 00  00 00 00 00 pÏY...D!GÏY.....
  910. 59CF6C  00 00 00 00 ....
  911.  
  912. ; >R SWAP R> 2!
  913.         MOV EDX, [EBP]
  914.  
  915. 59CF70  8B 55 00 ‹U.
  916.  
  917.         MOV [EAX+4], EDX
  918.  
  919. 59CF73  89 50 04 ‰P.
  920.  
  921.         MOV EDX, [EBP+4]
  922.  
  923. 59CF76  8B 55 04 ‹U.
  924.  
  925.         MOV [EAX], EDX
  926.  
  927. 59CF79  89 10 ‰.
  928.  
  929.         LEA EBP, [EBP+0CH]
  930.  
  931. 59CF7B  8D 6D 0C m.
  932.  
  933.         MOV EAX, [EBP-4]
  934.  
  935. 59CF7E  8B 45 FC ‹Eü
  936.  
  937.         RET
  938.  
  939. 59CF81  C3 Ã
  940.  
  941. EndCode
  942.  
  943.  
  944. Code EBX@ ;( -- EBX )
  945.  
  946. 59CF82  90 CF 59 00  00 04 45 42  58 40 61 CF  59 00 ÏY...EBX@aÏY.
  947.  
  948.         LEA EBP, [EBP-4]
  949.  
  950. 59CF90  8D 6D FC mü
  951.  
  952.         mov [ebp],eax
  953.  
  954. 59CF93  89 45 00 ‰E.
  955.  
  956.         MOV EAX,EBX
  957.  
  958. 59CF96  8B C3 ‹Ã
  959.  
  960.         RET
  961.  
  962. 59CF98  C3 Ã
  963.  
  964. EndCode
  965.  
  966. \ ================================================================
  967. \ ‚ëç¨á«¥­¨ï
  968.  
  969. Code 1+ ;( n1|u1 -- n2|u2 ) \ 94
  970.  
  971. 59CF99  B0 CF 59 00  00 02 31 2B  87 CF 59 00  00 00 00 00 °ÏY...1+‡ÏY.....
  972. 59CFA9  00 00 00 00  00 00 00 .......
  973.  
  974. ; à¨¡ ¢¨âì 1 ª n1|u1 ¨ ¯®«ãç¨âì á㬬ã u2|n2.
  975.      LEA EAX, [EAX+1]
  976.  
  977. 59CFB0  8D 40 01 @.
  978.  
  979.      RET
  980.  
  981. 59CFB3  C3 Ã
  982.  
  983. EndCode
  984.  
  985. Code 1- ;( n1|u1 -- n2|u2 ) \ 94
  986.  
  987. 59CFB4  C0 CF 59 00  00 02 31 2D  9E CF 59 00 ÀÏY...1-žÏY.
  988.  
  989. ; ‚ëç¥áâì 1 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §­®áâì n2|u2.
  990.      LEA EAX, [EAX-1]
  991.  
  992. 59CFC0  8D 40 FF @ÿ
  993.  
  994.      RET
  995.  
  996. 59CFC3  C3 Ã
  997.  
  998. EndCode
  999.  
  1000. Code 2+ ;( W -> W+2 )
  1001.  
  1002. 59CFC4  D0 CF 59 00  00 02 32 2B  B9 CF 59 00 ÐÏY...2+¹ÏY.
  1003.  
  1004.      LEA EAX, [EAX+2]
  1005.  
  1006. 59CFD0  8D 40 02 @.
  1007.  
  1008.      RET
  1009.  
  1010. 59CFD3  C3 Ã
  1011.  
  1012. EndCode
  1013.  
  1014. Code 2- ;( W -> W-2 )
  1015.  
  1016. 59CFD4  E0 CF 59 00  00 02 32 2D  C9 CF 59 00 àÏY...2-ÉÏY.
  1017.  
  1018.      LEA EAX, [EAX-2]
  1019.  
  1020. 59CFE0  8D 40 FE @þ
  1021.  
  1022.      RET
  1023.  
  1024. 59CFE3  C3 Ã
  1025.  
  1026. EndCode
  1027.  
  1028. Code 2* ;( x1 -- x2 ) \ 94
  1029.  
  1030. 59CFE4  F0 CF 59 00  00 02 32 2A  D9 CF 59 00 ðÏY...2*ÙÏY.
  1031.  
  1032. ; x2 - १ã«ìâ â ᤢ¨£  x1 ­  ®¤¨­ ¡¨â ¢«¥¢®, á § ¯®«­¥­¨¥¬
  1033. ; ­ ¨¬¥­¥¥ §­ ç¨¬®£® ¡¨â  ­ã«¥¬.
  1034. ;  SHL EAX
  1035. ;  LEA EAX, [EAX+EAX]
  1036.   LEA EAX, [EAX*2]
  1037.  
  1038. 59CFF0  8D 04 45 00  00 00 00 .E....
  1039.  
  1040.   RET
  1041.  
  1042. 59CFF7  C3 Ã
  1043.  
  1044. EndCode
  1045.  
  1046. Code CELL+ ;( a-addr1 -- a-addr2 ) \ 94
  1047.  
  1048. 59CFF8  10 D0 59 00  00 05 43 45  4C 4C 2B E9  CF 59 00 00 .ÐY...CELL+éÏY..
  1049. 59D008  00 00 00 00  00 00 00 00 ........
  1050.  
  1051. ; ‚ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2.
  1052.      LEA EAX, [EAX+4]
  1053.  
  1054. 59D010  8D 40 04 @.
  1055.  
  1056.      RET
  1057.  
  1058. 59D013  C3 Ã
  1059.  
  1060. EndCode
  1061.  
  1062. Code CELL- ;( a-addr1 -- a-addr2 ) \ 94
  1063.  
  1064. 59D014  30 D0 59 00  00 05 43 45  4C 4C 2D FD  CF 59 00 00 0ÐY...CELL-ýÏY..
  1065. 59D024  00 00 00 00  00 00 00 00  00 00 00 00 ............
  1066.  
  1067. ; ‚ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2.
  1068.      LEA EAX, [EAX-4]
  1069.  
  1070. 59D030  8D 40 FC @ü
  1071.  
  1072.      RET
  1073.  
  1074. 59D033  C3 Ã
  1075.  
  1076. EndCode
  1077.  
  1078. Code CELLS ;( n1 -- n2 ) \ 94
  1079.  
  1080. 59D034  50 D0 59 00  00 05 43 45  4C 4C 53 19  D0 59 00 00 PÐY...CELLS.ÐY..
  1081. 59D044  00 00 00 00  00 00 00 00  00 00 00 00 ............
  1082.  
  1083. ; n2 - à §¬¥à n1 ï祥ª.
  1084.   LEA     EAX,  DWORD PTR [EAX *4 ]
  1085.  
  1086. 59D050  8D 04 85 00  00 00 00 .…....
  1087.  
  1088.   RET
  1089.  
  1090. 59D057  C3 Ã
  1091.  
  1092. EndCode
  1093.  
  1094.  
  1095. Code + ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
  1096.  
  1097. 59D058  70 D0 59 00  00 01 2B 39  D0 59 00 00  00 00 00 00 pÐY...+9ÐY......
  1098. 59D068  00 00 00 00  00 00 00 00 ........
  1099.  
  1100. ; ‘«®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì á㬬ã n3|u3.
  1101.      ADD EAX,  DWORD PTR [EBP]
  1102.  
  1103. 59D070  03 45 00 .E.
  1104.  
  1105.      LEA EBP, [EBP+4]
  1106.  
  1107. 59D073  8D 6D 04 m.
  1108.  
  1109.      RET
  1110.  
  1111. 59D076  C3 Ã
  1112.  
  1113. EndCode
  1114.  
  1115. Code D+ ;( d1|ud1 d2|ud2 -- d3|ud3 ) \ 94 DOUBLE
  1116.  
  1117. 59D077  90 D0 59 00  00 02 44 2B  5D D0 59 00  00 00 00 00 ÐY...D+]ÐY.....
  1118. 59D087  00 00 00 00  00 00 00 00  00 .........
  1119.  
  1120. ; ‘«®¦¨âì d1|ud1 ¨ d2|ud2 ¨ ¤ âì á㬬ã d3|ud3.
  1121.        MOV EDX,    DWORD PTR [EBP]
  1122.  
  1123. 59D090  8B 55 00 ‹U.
  1124.  
  1125.        ADD DWORD PTR [EBP + { 2 CELLS } ],  EDX
  1126.  
  1127. 59D093  01 55 08 .U.
  1128.  
  1129.        ADC EAX, DWORD PTR [EBP +4 ]
  1130.  
  1131. 59D096  13 45 04 .E.
  1132.  
  1133.        LEA EBP, [EBP+8]
  1134.  
  1135. 59D099  8D 6D 08 m.
  1136.  
  1137.        RET
  1138.  
  1139. 59D09C  C3 Ã
  1140.  
  1141. EndCode
  1142.  
  1143. Code D- ;( d1 d2 -- d3 ) \ 94 DOUBLE
  1144.  
  1145. 59D09D  B0 D0 59 00  00 02 44 2D  7C D0 59 00  00 00 00 00 °ÐY...D-|ÐY.....
  1146. 59D0AD  00 00 00 ...
  1147.  
  1148. ; perform a double subtract (64bit)
  1149.        MOV EDX,   DWORD PTR [EBP]
  1150.  
  1151. 59D0B0  8B 55 00 ‹U.
  1152.  
  1153.        SUB DWORD PTR [EBP + { 2 CELLS } ],  EDX
  1154.  
  1155. 59D0B3  29 55 08 )U.
  1156.  
  1157.        SBB [EBP+4], EAX
  1158.  
  1159. 59D0B6  19 45 04 .E.
  1160.  
  1161.        MOV EAX, DWORD PTR [EBP +4 ]
  1162.  
  1163. 59D0B9  8B 45 04 ‹E.
  1164.  
  1165.        LEA EBP, [EBP+8]
  1166.  
  1167. 59D0BC  8D 6D 08 m.
  1168.  
  1169.        RET
  1170.  
  1171. 59D0BF  C3 Ã
  1172.  
  1173. EndCode
  1174.                
  1175. Code - ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
  1176.  
  1177. 59D0C0  D0 D0 59 00  00 01 2D A2  D0 59 00 00  00 00 00 00 ÐÐY...-¢ÐY......
  1178.  
  1179. ; ‚ëç¥áâì n2|u2 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §­®áâì n3|u3.
  1180.      NEG EAX
  1181.  
  1182. 59D0D0  F7 D8 ÷Ø
  1183.  
  1184.      ADD EAX, [EBP]
  1185.  
  1186. 59D0D2  03 45 00 .E.
  1187.  
  1188.      LEA EBP, [EBP+4]
  1189.  
  1190. 59D0D5  8D 6D 04 m.
  1191.  
  1192.      RET
  1193.  
  1194. 59D0D8  C3 Ã
  1195.  
  1196. EndCode
  1197.  
  1198. Code 1+! ;( A -> )
  1199.  
  1200. 59D0D9  F0 D0 59 00  00 03 31 2B  21 C5 D0 59  00 00 00 00 ðÐY...1+!ÅÐY....
  1201. 59D0E9  00 00 00 00  00 00 00 .......
  1202.  
  1203.      INC   DWORD PTR [EAX ]
  1204.  
  1205. 59D0F0  FF 00 ÿ.
  1206.  
  1207.      MOV   EAX, [EBP]
  1208.  
  1209. 59D0F2  8B 45 00 ‹E.
  1210.  
  1211.      LEA EBP, [EBP+4]
  1212.  
  1213. 59D0F5  8D 6D 04 m.
  1214.  
  1215.      RET
  1216.  
  1217. 59D0F8  C3 Ã
  1218.  
  1219. EndCode
  1220.  
  1221. Code 0! ;( A -> )
  1222.  
  1223. 59D0F9  10 D1 59 00  00 02 30 21  DE D0 59 00  00 00 00 00 .ÑY...0!ÞÐY.....
  1224. 59D109  00 00 00 00  00 00 00 .......
  1225.  
  1226.      MOV   DWORD PTR [EAX ], 0
  1227.  
  1228. 59D110  C7 00 00 00  00 00 Ç.....
  1229.  
  1230.      MOV   EAX, [EBP]
  1231.  
  1232. 59D116  8B 45 00 ‹E.
  1233.  
  1234.      LEA EBP, [EBP+4]
  1235.  
  1236. 59D119  8D 6D 04 m.
  1237.  
  1238.      RET
  1239.  
  1240. 59D11C  C3 Ã
  1241.  
  1242. EndCode
  1243.  
  1244. Code COUNT ;( c-addr1 -- c-addr2 u ) \ 94
  1245.  
  1246. 59D11D  30 D1 59 00  00 05 43 4F  55 4E 54 FE  D0 59 00 00 0ÑY...COUNTþÐY..
  1247. 59D12D  00 00 00 ...
  1248.  
  1249. ; ®«ãç¨âì áâபã ᨬ¢®«®¢ ¨§ áâப¨ á® áç¥â稪®¬ c-addr1.
  1250. ; c-addr2 -  ¤à¥á ¯¥à¢®£® ᨬ¢®«  §  c-addr1.
  1251. ; u - ᮤ¥à¦¨¬®¥ ¡ ©â  c-addr1, ïî饥áï ¤«¨­®© áâப¨ ᨬ¢®«®¢,
  1252. ; ­ ç¨­ î饩áï á  ¤à¥á  c-addr2.
  1253.      LEA EBP, [EBP-4]
  1254.  
  1255. 59D130  8D 6D FC mü
  1256.  
  1257.      LEA  EDX,   DWORD PTR [EAX +1 ]
  1258.  
  1259. 59D133  8D 50 01 P.
  1260.  
  1261.      MOV  DWORD PTR [EBP],    EDX
  1262.  
  1263. 59D136  89 55 00 ‰U.
  1264.  
  1265.      MOVZX EAX,  BYTE PTR [EAX ]
  1266.  
  1267. 59D139  0F B6 00 .¶.
  1268.  
  1269.      RET
  1270.  
  1271. 59D13C  C3 Ã
  1272.  
  1273. EndCode
  1274.  
  1275. Code * ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
  1276.  
  1277. 59D13D  50 D1 59 00  00 01 2A 22  D1 59 00 00  00 00 00 00 PÑY...*"ÑY......
  1278. 59D14D  00 00 00 ...
  1279.  
  1280. ; ¥à¥¬­®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì ¯à®¨§¢¥¤¥­¨¥ n3|u3.
  1281.      IMUL DWORD PTR [EBP]
  1282.  
  1283. 59D150  F7 6D 00 ÷m.
  1284.  
  1285.      LEA EBP, [EBP+4]
  1286.  
  1287. 59D153  8D 6D 04 m.
  1288.  
  1289.      RET
  1290.  
  1291. 59D156  C3 Ã
  1292.  
  1293. EndCode
  1294.  
  1295. Code AND ;( x1 x2 -- x3 ) \ 94
  1296.  
  1297. 59D157  70 D1 59 00  00 03 41 4E  44 42 D1 59  00 00 00 00 pÑY...ANDBÑY....
  1298. 59D167  00 00 00 00  00 00 00 00  00 .........
  1299.  
  1300. ; x3 - ¯®¡¨â®¢®¥ "ˆ" x1 ¨ x2.
  1301.      AND EAX, [EBP]
  1302.  
  1303. 59D170  23 45 00 #E.
  1304.  
  1305.      LEA EBP, [EBP+4]
  1306.  
  1307. 59D173  8D 6D 04 m.
  1308.  
  1309.      RET
  1310.  
  1311. 59D176  C3 Ã
  1312.  
  1313. EndCode
  1314.  
  1315. Code OR ;( x1 x2 -- x3 ) \ 94
  1316.  
  1317. 59D177  90 D1 59 00  00 02 4F 52  5C D1 59 00  00 00 00 00 ÑY...OR\ÑY.....
  1318. 59D187  00 00 00 00  00 00 00 00  00 .........
  1319.  
  1320. ; x3 - ¯®¡¨â®¢®¥ "ˆ‹ˆ" x1 ¨ x2.
  1321.      OR EAX, [EBP]
  1322.  
  1323. 59D190  0B 45 00 .E.
  1324.  
  1325.      LEA EBP, [EBP+4]
  1326.  
  1327. 59D193  8D 6D 04 m.
  1328.  
  1329.      RET
  1330.  
  1331. 59D196  C3 Ã
  1332.  
  1333. EndCode
  1334.  
  1335. Code XOR ;( x1 x2 -- x3 ) \ 94
  1336.  
  1337. 59D197  B0 D1 59 00  00 03 58 4F  52 7C D1 59  00 00 00 00 °ÑY...XOR|ÑY....
  1338. 59D1A7  00 00 00 00  00 00 00 00  00 .........
  1339.  
  1340. ; x3 - ¯®¡¨â®¢®¥ "¨áª«îç î饥 ˆ‹ˆ" x1 ¨ x2.
  1341.      XOR EAX, [EBP]
  1342.  
  1343. 59D1B0  33 45 00 3E.
  1344.  
  1345.      LEA EBP, [EBP+4]
  1346.  
  1347. 59D1B3  8D 6D 04 m.
  1348.  
  1349.      RET
  1350.  
  1351. 59D1B6  C3 Ã
  1352.  
  1353. EndCode
  1354.  
  1355. Code INVERT ;( x1 -- x2 ) \ 94
  1356.  
  1357. 59D1B7  D0 D1 59 00  00 06 49 4E  56 45 52 54  9C D1 59 00 ÐÑY...INVERTœÑY.
  1358. 59D1C7  00 00 00 00  00 00 00 00  00 .........
  1359.  
  1360. ; ˆ­¢¥àâ¨à®¢ âì ¢á¥ ¡¨âë x1 ¨ ¯®«ãç¨âì «®£¨ç¥áªãî ¨­¢¥àá¨î x2.
  1361.      NOT EAX
  1362.  
  1363. 59D1D0  F7 D0 ÷Ð
  1364.  
  1365.      RET
  1366.  
  1367. 59D1D2  C3 Ã
  1368.  
  1369. EndCode
  1370.  
  1371. Code NEGATE ;( n1 -- n2 ) \ 94
  1372.  
  1373. 59D1D3  F0 D1 59 00  00 06 4E 45  47 41 54 45  BC D1 59 00 ðÑY...NEGATE¼ÑY.
  1374. 59D1E3  00 00 00 00  00 00 00 00  00 00 00 00  00 .............
  1375.  
  1376. ; n2 -  à¨ä¬¥â¨ç¥áª ï ¨­¢¥àá¨ï n1.
  1377.      NEG EAX
  1378.  
  1379. 59D1F0  F7 D8 ÷Ø
  1380.  
  1381.      RET
  1382.  
  1383. 59D1F2  C3 Ã
  1384.  
  1385. EndCode
  1386.  
  1387. Code ABS ;( n -- u ) \ 94
  1388.  
  1389. 59D1F3  00 D2 59 00  00 03 41 42  53 D8 D1 59  00 .ÒY...ABSØÑY.
  1390.  
  1391. ; u -  ¡á®«îâ­ ï ¢¥«¨ç¨­  n.
  1392.      TEST  EAX, EAX
  1393.  
  1394. 59D200  85 C0 …À
  1395.  
  1396.      JS  { ' NEGATE }
  1397.  
  1398. 59D202  78 EC xì
  1399.  
  1400.      RET
  1401.  
  1402. 59D204  C3 Ã
  1403.  
  1404. EndCode
  1405.  
  1406. Code DNEGATE ;( d1 -- d2 ) \ 94 DOUBLE
  1407.  
  1408. 59D205  20 D2 59 00  00 07 44 4E  45 47 41 54  45 F8 D1 59  ÒY...DNEGATEøÑY
  1409. 59D215  00 00 00 00  00 00 00 00  00 00 00 ...........
  1410.  
  1411. ; d2 १ã«ìâ â ¢ëç¨â ­¨ï d1 ¨§ ­ã«ï.
  1412.      MOV  EDX, [EBP]
  1413.  
  1414. 59D220  8B 55 00 ‹U.
  1415.  
  1416.      NEG  EAX
  1417.  
  1418. 59D223  F7 D8 ÷Ø
  1419.  
  1420.      NEG  EDX
  1421.  
  1422. 59D225  F7 DA ÷Ú
  1423.  
  1424.      SBB  EAX,   0
  1425.  
  1426. 59D227  83 D8 00 ƒØ.
  1427.  
  1428.      MOV  DWORD PTR [EBP],  EDX
  1429.  
  1430. 59D22A  89 55 00 ‰U.
  1431.  
  1432.      RET
  1433.  
  1434. 59D22D  C3 Ã
  1435.  
  1436. EndCode
  1437.  
  1438. Code NOOP ;( -> )
  1439.  
  1440. 59D22E  40 D2 59 00  00 04 4E 4F  4F 50 0A D2  59 00 00 00 @ÒY...NOOP.ÒY...
  1441. 59D23E  00 00 ..
  1442.  
  1443.      RET
  1444.  
  1445. 59D240  C3 Ã
  1446.  
  1447. EndCode
  1448.  
  1449. Code S>D ;( n -- d ) \ 94
  1450.  
  1451. 59D241  50 D2 59 00  00 03 53 3E  44 33 D2 59  00 00 00 PÒY...S>D3ÒY...
  1452.  
  1453. ; à¥®¡à §®¢ âì ç¨á«® n ¢ ¤¢®©­®¥ ç¨á«® d á ⥬ ¦¥ ç¨á«®¢ë¬ §­ ç¥­¨¥¬.
  1454.      LEA EBP, [EBP-4]
  1455.  
  1456. 59D250  8D 6D FC mü
  1457.  
  1458.      MOV  [EBP], EAX
  1459.  
  1460. 59D253  89 45 00 ‰E.
  1461.  
  1462.      CDQ
  1463.  
  1464. 59D256  99 ™
  1465.  
  1466.      MOV  EAX, EDX
  1467.  
  1468. 59D257  8B C2 ‹Â
  1469.  
  1470.      RET
  1471.  
  1472. 59D259  C3 Ã
  1473.  
  1474. EndCode
  1475.  
  1476. Code D>S ;( d -- n ) \ 94 DOUBLE
  1477.  
  1478. 59D25A  70 D2 59 00  00 03 44 3E  53 46 D2 59  00 00 00 00 pÒY...D>SFÒY....
  1479. 59D26A  00 00 00 00  00 00 ......
  1480.  
  1481. ; n - íª¢¨¢ «¥­â d.
  1482. ; ˆáª«îç¨â¥«ì­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ d ­ å®¤¨âáï ¢­¥ ¤¨ ¯ §®­ 
  1483. ; §­ ª®¢ëå ®¤¨­ à­ëå ç¨á¥«.
  1484.      MOV     EAX, [EBP]
  1485.  
  1486. 59D270  8B 45 00 ‹E.
  1487.  
  1488.      ADD     EBP, 4
  1489.  
  1490. 59D273  83 C5 04 ƒÅ.
  1491.  
  1492.      RET
  1493.  
  1494. 59D276  C3 Ã
  1495.  
  1496. EndCode
  1497.  
  1498. Code U>D ;( U -> D ) \ à áè¨à¨âì ç¨á«® ¤® ¤¢®©­®© â®ç­®á⨠­ã«¥¬
  1499.  
  1500. 59D277  90 D2 59 00  00 03 55 3E  44 5F D2 59  00 00 00 00 ÒY...U>D_ÒY....
  1501. 59D287  00 00 00 00  00 00 00 00  00 .........
  1502.  
  1503.      LEA EBP, [EBP-4]
  1504.  
  1505. 59D290  8D 6D FC mü
  1506.  
  1507.      MOV  [EBP], EAX
  1508.  
  1509. 59D293  89 45 00 ‰E.
  1510.  
  1511.      XOR  EAX, EAX
  1512.  
  1513. 59D296  33 C0 3À
  1514.  
  1515.      RET
  1516.  
  1517. 59D298  C3 Ã
  1518.  
  1519. EndCode
  1520.  
  1521. Code C>S ;( c -- n )  \ à áè¨à¨âì CHAR
  1522.  
  1523. 59D299  B0 D2 59 00  00 03 43 3E  53 7C D2 59  00 00 00 00 °ÒY...C>S|ÒY....
  1524. 59D2A9  00 00 00 00  00 00 00 .......
  1525.  
  1526.      MOVSX  EAX, AL
  1527.  
  1528. 59D2B0  0F BE C0 .¾À
  1529.  
  1530.      RET
  1531.  
  1532. 59D2B3  C3 Ã
  1533.  
  1534. EndCode
  1535.  
  1536. Code UM* ;( u1 u2 -- ud ) \ 94
  1537.  
  1538. 59D2B4  D0 D2 59 00  00 03 55 4D  2A 9E D2 59  00 00 00 00 ÐÒY...UM*žÒY....
  1539. 59D2C4  00 00 00 00  00 00 00 00  00 00 00 00 ............
  1540.  
  1541. ; ud - ¯à®¨§¢¥¤¥­¨¥ u1 ¨ u2. ‚ᥠ§­ ç¥­¨ï ¨  à¨ä¬¥â¨ª  ¡¥§§­ ª®¢ë¥.
  1542.        MUL  DWORD PTR [EBP]
  1543.  
  1544. 59D2D0  F7 65 00 ÷e.
  1545.  
  1546.        MOV  [EBP], EAX
  1547.  
  1548. 59D2D3  89 45 00 ‰E.
  1549.  
  1550.        MOV  EAX, EDX
  1551.  
  1552. 59D2D6  8B C2 ‹Â
  1553.  
  1554.        RET
  1555.  
  1556. 59D2D8  C3 Ã
  1557.  
  1558. EndCode
  1559.  
  1560. Code / ;( n1 n2 -- n3 ) \ 94
  1561.  
  1562. 59D2D9  F0 D2 59 00  00 01 2F B9  D2 59 00 00  00 00 00 00 ðÒY.../¹ÒY......
  1563. 59D2E9  00 00 00 00  00 00 00 .......
  1564.  
  1565. ; „¥«¨âì n1 ­  n2, ¯®«ãç¨âì ç áâ­®¥ n3.
  1566. ; ˆáª«îç¨â¥«ì­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ n2 à ¢¥­ ­ã«î.
  1567. ; …᫨ n1 ¨ n2 à §«¨ç îâáï ¯® §­ ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â
  1568. ; ॠ«¨§ æ¨¨.
  1569.      MOV  ECX,  EAX
  1570.  
  1571. 59D2F0  8B C8 ‹È
  1572.  
  1573.      MOV  EAX, [EBP]
  1574.  
  1575. 59D2F2  8B 45 00 ‹E.
  1576.  
  1577.      CDQ
  1578.  
  1579. 59D2F5  99 ™
  1580.  
  1581.      IDIV ECX
  1582.  
  1583. 59D2F6  F7 F9 ÷ù
  1584.  
  1585.      LEA EBP, [EBP+4]
  1586.  
  1587. 59D2F8  8D 6D 04 m.
  1588.  
  1589.      RET
  1590.  
  1591. 59D2FB  C3 Ã
  1592.  
  1593. EndCode
  1594.  
  1595. Code U/ ;( W1, W2 -> W3 ) \ ¡¥§§­ ª®¢®¥ ¤¥«¥­¨¥ W1 ­  W2
  1596.  
  1597. 59D2FC  10 D3 59 00  00 02 55 2F  DE D2 59 00  00 00 00 00 .ÓY...U/ÞÒY.....
  1598. 59D30C  00 00 00 00 ....
  1599.  
  1600.      MOV ECX, EAX
  1601.  
  1602. 59D310  8B C8 ‹È
  1603.  
  1604.      MOV EAX, [EBP]
  1605.  
  1606. 59D312  8B 45 00 ‹E.
  1607.  
  1608.      XOR EDX, EDX
  1609.  
  1610. 59D315  33 D2 3Ò
  1611.  
  1612.      LEA EBP, [EBP+4]
  1613.  
  1614. 59D317  8D 6D 04 m.
  1615.  
  1616.      DIV ECX
  1617.  
  1618. 59D31A  F7 F1 ÷ñ
  1619.  
  1620.      RET
  1621.  
  1622. 59D31C  C3 Ã
  1623.  
  1624. EndCode
  1625.  
  1626. Code +! ;( n|u a-addr -- ) \ 94     \ !!!!!
  1627.  
  1628. 59D31D  30 D3 59 00  00 02 2B 21  01 D3 59 00  00 00 00 00 0ÓY...+!.ÓY.....
  1629. 59D32D  00 00 00 ...
  1630.  
  1631. ; à¨¡ ¢¨âì n|u ª ®¤¨­ à­®¬ã ç¨á«ã ¯®  ¤à¥áã a-addr.
  1632.      MOV EDX, [EBP]
  1633.  
  1634. 59D330  8B 55 00 ‹U.
  1635.  
  1636.      ADD DWORD PTR [EAX ],  EDX
  1637.  
  1638. 59D333  01 10 ..
  1639.  
  1640.      MOV EAX, [EBP+4]
  1641.  
  1642. 59D335  8B 45 04 ‹E.
  1643.  
  1644.      LEA EBP, [EBP+8]
  1645.  
  1646. 59D338  8D 6D 08 m.
  1647.  
  1648.      RET
  1649.  
  1650. 59D33B  C3 Ã
  1651.  
  1652. EndCode
  1653.  
  1654. Code MOD ;( n1 n2 -- n3 ) \ 94
  1655.  
  1656. 59D33C  50 D3 59 00  00 03 4D 4F  44 22 D3 59  00 00 00 00 PÓY...MOD"ÓY....
  1657. 59D34C  00 00 00 00 ....
  1658.  
  1659. ; „¥«¨âì n1 ­  n2, ¯®«ãç¨âì ®áâ â®ª n3.
  1660. ; ˆáª«îç¨â¥«ì­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ n2 à ¢¥­ ­ã«î.
  1661. ; …᫨ n1 ¨ n2 à §«¨ç îâáï ¯® §­ ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â
  1662. ; ॠ«¨§ æ¨¨.
  1663.      MOV  ECX,  EAX
  1664.  
  1665. 59D350  8B C8 ‹È
  1666.  
  1667.      MOV  EAX, [EBP]
  1668.  
  1669. 59D352  8B 45 00 ‹E.
  1670.  
  1671.      LEA EBP, [EBP+4]
  1672.  
  1673. 59D355  8D 6D 04 m.
  1674.  
  1675.      CDQ
  1676.  
  1677. 59D358  99 ™
  1678.  
  1679.      IDIV ECX
  1680.  
  1681. 59D359  F7 F9 ÷ù
  1682.  
  1683.      MOV  EAX, EDX
  1684.  
  1685. 59D35B  8B C2 ‹Â
  1686.  
  1687.      RET
  1688.  
  1689. 59D35D  C3 Ã
  1690.  
  1691. EndCode
  1692.  
  1693. Code /MOD ;( n1 n2 -- n3 n4 ) \ 94
  1694.  
  1695. 59D35E  70 D3 59 00  00 04 2F 4D  4F 44 41 D3  59 00 00 00 pÓY.../MODAÓY...
  1696. 59D36E  00 00 ..
  1697.  
  1698. ; „¥«¨âì n1 ­  n2, ¤ âì ®áâ â®ª n3 ¨ ç áâ­®¥ n4.
  1699. ; ¥®¤­®§­ ç­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ n2 ­ã«ì.
  1700.        MOV ECX, EAX
  1701.  
  1702. 59D370  8B C8 ‹È
  1703.  
  1704.        MOV EAX, [EBP]
  1705.  
  1706. 59D372  8B 45 00 ‹E.
  1707.  
  1708.        CDQ
  1709.  
  1710. 59D375  99 ™
  1711.  
  1712.        IDIV ECX
  1713.  
  1714. 59D376  F7 F9 ÷ù
  1715.  
  1716.        MOV [EBP], EDX
  1717.  
  1718. 59D378  89 55 00 ‰U.
  1719.  
  1720.        RET
  1721.  
  1722. 59D37B  C3 Ã
  1723.  
  1724. EndCode
  1725.  
  1726. Code UMOD ;( W1, W2 -> W3 ) \ ®áâ â®ª ®â ¤¥«¥­¨ï W1 ­  W2
  1727.  
  1728. 59D37C  90 D3 59 00  00 04 55 4D  4F 44 63 D3  59 00 00 00 ÓY...UMODcÓY...
  1729. 59D38C  00 00 00 00 ....
  1730.  
  1731.      MOV ECX,  EAX
  1732.  
  1733. 59D390  8B C8 ‹È
  1734.  
  1735.      XOR EDX, EDX
  1736.  
  1737. 59D392  33 D2 3Ò
  1738.  
  1739.      MOV EAX, [EBP]
  1740.  
  1741. 59D394  8B 45 00 ‹E.
  1742.  
  1743.      LEA EBP, [EBP+4]
  1744.  
  1745. 59D397  8D 6D 04 m.
  1746.  
  1747.      DIV ECX
  1748.  
  1749. 59D39A  F7 F1 ÷ñ
  1750.  
  1751.      MOV EAX, EDX
  1752.  
  1753. 59D39C  8B C2 ‹Â
  1754.  
  1755.      RET
  1756.  
  1757. 59D39E  C3 Ã
  1758.  
  1759. EndCode
  1760.  
  1761. Code UM/MOD ;( ud u1 -- u2 u3 ) \ 94
  1762.  
  1763. 59D39F  B0 D3 59 00  00 06 55 4D  2F 4D 4F 44  81 D3 59 00 °ÓY...UM/MODÓY.
  1764. 59D3AF  00 .
  1765.  
  1766. ; „¥«¨âì ud ­  u1, ¯®«ãç¨âì ç áâ­®¥ u3 ¨ ®áâ â®ª u2.
  1767. ; ‚ᥠ§­ ç¥­¨ï ¨  à¨ä¬¥â¨ª  ¡¥§§­ ª®¢ë¥.
  1768. ; ˆáª«îç¨â¥«ì­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ u1 ­®«ì ¨«¨ ç áâ­®¥
  1769. ; ­ å®¤¨âáï ¢­¥ ¤¨ ¯ §®­  ®¤¨­ à­ëå ¡¥§§­ ª®¢ëå ç¨á¥«.
  1770.        MOV ECX, EAX
  1771.  
  1772. 59D3B0  8B C8 ‹È
  1773.  
  1774.        MOV EDX, [EBP]
  1775.  
  1776. 59D3B2  8B 55 00 ‹U.
  1777.  
  1778.        MOV EAX, [EBP+4]
  1779.  
  1780. 59D3B5  8B 45 04 ‹E.
  1781.  
  1782.        DIV ECX
  1783.  
  1784. 59D3B8  F7 F1 ÷ñ
  1785.  
  1786.        LEA EBP, [EBP+4]
  1787.  
  1788. 59D3BA  8D 6D 04 m.
  1789.  
  1790.        MOV [EBP], EDX
  1791.  
  1792. 59D3BD  89 55 00 ‰U.
  1793.  
  1794.  
  1795.        RET
  1796.  
  1797. 59D3C0  C3 Ã
  1798.  
  1799. EndCode
  1800.  
  1801. Code 2/ ;( x1 -- x2 ) \ 94
  1802.  
  1803. 59D3C1  D0 D3 59 00  00 02 32 2F  A4 D3 59 00  00 00 00 ÐÓY...2/¤ÓY....
  1804.  
  1805. ; x2 - १ã«ìâ â ᤢ¨£  x1 ­  ®¤¨­ ¡¨â ¢¯à ¢® ¡¥§ ¨§¬¥­¥­¨ï áâ à襣® ¡¨â .
  1806.      SAR   EAX,1
  1807.  
  1808. 59D3D0  D1 F8 Ñø
  1809.  
  1810.      RET
  1811.  
  1812. 59D3D2  C3 Ã
  1813.  
  1814. EndCode
  1815.  
  1816. Code */MOD ;( n1 n2 n3 -- n4 n5 ) \ 94
  1817.  
  1818. 59D3D3  F0 D3 59 00  00 05 2A 2F  4D 4F 44 C6  D3 59 00 00 ðÓY...*/MODÆÓY..
  1819. 59D3E3  00 00 00 00  00 00 00 00  00 00 00 00  00 .............
  1820.  
  1821. ; “¬­®¦¨âì n1 ­  n2, ¯®«ãç¨âì ¯à®¬¥¦ãâ®ç­ë© ¤¢®©­®© १ã«ìâ â d.
  1822. ;  §¤¥«¨âì d ­  n3, ¯®«ãç¨âì ®áâ â®ª n4 ¨ ç áâ­®¥ n5.
  1823.      MOV     EBX, EAX
  1824.  
  1825. 59D3F0  8B D8 ‹Ø
  1826.  
  1827.      MOV     EAX, [EBP]
  1828.  
  1829. 59D3F2  8B 45 00 ‹E.
  1830.  
  1831.      MOV     ECX, [EBP+4]
  1832.  
  1833. 59D3F5  8B 4D 04 ‹M.
  1834.  
  1835.      IMUL    ECX
  1836.  
  1837. 59D3F8  F7 E9 ÷é
  1838.  
  1839.      IDIV    EBX
  1840.  
  1841. 59D3FA  F7 FB ÷û
  1842.  
  1843.      MOV  [EBP+4], EDX
  1844.  
  1845. 59D3FC  89 55 04 ‰U.
  1846.  
  1847.      LEA EBP, [EBP+4]
  1848.  
  1849. 59D3FF  8D 6D 04 m.
  1850.  
  1851.      RET
  1852.  
  1853. 59D402  C3 Ã
  1854.  
  1855. EndCode
  1856.  
  1857. Code M* ;( n1 n2 -- d ) \ 94
  1858.  
  1859. 59D403  10 D4 59 00  00 02 4D 2A  D8 D3 59 00  00 .ÔY...M*ØÓY..
  1860.  
  1861. ; d - §­ ª®¢ë© १ã«ìâ â 㬭®¦¥­¨ï n1 ­  n2.
  1862.      IMUL DWORD PTR [EBP]
  1863.  
  1864. 59D410  F7 6D 00 ÷m.
  1865.  
  1866.      MOV  [EBP], EAX
  1867.  
  1868. 59D413  89 45 00 ‰E.
  1869.  
  1870.      MOV  EAX,  EDX
  1871.  
  1872. 59D416  8B C2 ‹Â
  1873.  
  1874.      RET
  1875.  
  1876. 59D418  C3 Ã
  1877.  
  1878. EndCode
  1879.  
  1880. Code LSHIFT ;( x1 u -- x2 ) ; 94
  1881.  
  1882. 59D419  30 D4 59 00  00 06 4C 53  48 49 46 54  08 D4 59 00 0ÔY...LSHIFT.ÔY.
  1883. 59D429  00 00 00 00  00 00 00 .......
  1884.  
  1885. ; ‘¤¢¨­ãâì x1 ­  u ¡¨â ¢«¥¢®. ®¬¥áâ¨âì ­ã«¨ ¢ ­ ¨¬¥­¥¥ §­ ç¨¬ë¥ ¡¨âë,
  1886. ; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥.
  1887. ; ¥®¤­®§­ ç­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢­®
  1888. ; ç¨á«ã ¡¨â ¢ ï祩ª¥.
  1889.      MOV ECX, EAX
  1890.  
  1891. 59D430  8B C8 ‹È
  1892.  
  1893.      MOV EAX, [EBP]
  1894.  
  1895. 59D432  8B 45 00 ‹E.
  1896.  
  1897.      SHL EAX, CL
  1898.  
  1899. 59D435  D3 E0 Óà
  1900.  
  1901.      LEA EBP, [EBP+4]
  1902.  
  1903. 59D437  8D 6D 04 m.
  1904.  
  1905.      RET
  1906.  
  1907. 59D43A  C3 Ã
  1908.  
  1909. EndCode
  1910.  
  1911. Code RSHIFT ;( x1 u -- x2 ) \ 94
  1912.  
  1913. 59D43B  50 D4 59 00  00 06 52 53  48 49 46 54  1E D4 59 00 PÔY...RSHIFT.ÔY.
  1914. 59D44B  00 00 00 00  00 .....
  1915.  
  1916. ; ‘¤¢¨­ãâì x1 ­  u ¡¨â ¢¯à ¢®. ®¬¥áâ¨âì ­ã«¨ ¢ ­ ¨¡®«¥¥ §­ ç¨¬ë¥ ¡¨âë,
  1917. ; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥.
  1918. ; ¥®¤­®§­ ç­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢­®
  1919. ; ç¨á«ã ¡¨â ¢ ï祩ª¥.
  1920.      MOV ECX, EAX
  1921.  
  1922. 59D450  8B C8 ‹È
  1923.  
  1924.      MOV EAX, [EBP]
  1925.  
  1926. 59D452  8B 45 00 ‹E.
  1927.  
  1928.      SHR EAX, CL
  1929.  
  1930. 59D455  D3 E8 Óè
  1931.  
  1932.      LEA EBP, [EBP+4]
  1933.  
  1934. 59D457  8D 6D 04 m.
  1935.  
  1936.      RET
  1937.  
  1938. 59D45A  C3 Ã
  1939.  
  1940. EndCode
  1941.  
  1942. Code SM/REM ;( d1 n1 -- n2 n3 ) \ 94
  1943.  
  1944. 59D45B  70 D4 59 00  00 06 53 4D  2F 52 45 4D  40 D4 59 00 pÔY...SM/REM@ÔY.
  1945. 59D46B  00 00 00 00  00 .....
  1946.  
  1947. ;  §¤¥«¨âì d1 ­  n1, ¯®«ãç¨âì ᨬ¬¥âà¨ç­®¥ ç áâ­®¥ n3 ¨ ®áâ â®ª n2.
  1948. ; ‚室­ë¥ ¨ ¢ë室­ë¥  à£ã¬¥­âë §­ ª®¢ë¥.
  1949. ; ¥®¤­®§­ ç­ ï á¨âã æ¨ï ¢®§­¨ª ¥â, ¥á«¨ n1 ­®«ì, ¨«¨ ç áâ­®¥ ¢­¥
  1950. ; ¤¨ ¯ §®­  ®¤¨­ à­ëå §­ ª®¢ëå ç¨á¥«.
  1951.      MOV EBX, EAX
  1952.  
  1953. 59D470  8B D8 ‹Ø
  1954.  
  1955.      MOV EDX, [EBP]
  1956.  
  1957. 59D472  8B 55 00 ‹U.
  1958.  
  1959.      MOV EAX, [EBP+4]
  1960.  
  1961. 59D475  8B 45 04 ‹E.
  1962.  
  1963.      IDIV EBX
  1964.  
  1965. 59D478  F7 FB ÷û
  1966.  
  1967.      LEA EBP, [EBP+4]
  1968.  
  1969. 59D47A  8D 6D 04 m.
  1970.  
  1971.      MOV [EBP], EDX
  1972.  
  1973. 59D47D  89 55 00 ‰U.
  1974.  
  1975.      RET
  1976.  
  1977. 59D480  C3 Ã
  1978.  
  1979. EndCode
  1980.  
  1981. Code FM/MOD ;( d1 n1 -- n2 n3 ) \ 94
  1982.  
  1983. 59D481  A0 D4 59 00  00 06 46 4D  2F 4D 4F 44  60 D4 59 00  ÔY...FM/MOD`ÔY.
  1984. 59D491  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 ...............
  1985.  
  1986. ; Ðàçäåëèòü d1 íà n1, ïîëó÷èòü ÷àñòíîå n3 è îñòàòîê n2.
  1987. ; Âõîäíûå è âûõîäíûå àðãóìåíòû çíàêîâûå.
  1988. ; Íåîäíîçíà÷íàÿ ñèòóàöèÿ âîçíèêàåò, åñëè n1 íîëü, èëè ÷àñòíîå âíå
  1989. ; äèàïàçîíà îäèíàðíûõ çíàêîâûõ ÷èñåë.
  1990.         MOV ECX, EAX
  1991.  
  1992. 59D4A0  8B C8 ‹È
  1993.  
  1994.         MOV EDX, [EBP]
  1995.  
  1996. 59D4A2  8B 55 00 ‹U.
  1997.  
  1998.         MOV EBX, EDX
  1999.  
  2000. 59D4A5  8B DA ‹Ú
  2001.  
  2002.         MOV EAX, [EBP+4]
  2003.  
  2004. 59D4A7  8B 45 04 ‹E.
  2005.  
  2006.         IDIV ECX
  2007.  
  2008. 59D4AA  F7 F9 ÷ù
  2009.  
  2010.         TEST EDX, EDX            ; Îñòàòîê-òî åñòü?
  2011.  
  2012. 59D4AC  85 D2 …Ò
  2013.  
  2014.         JZ  SHORT @@1
  2015.  
  2016. 59D4AE  74 07 t.
  2017.  
  2018.         XOR EBX, ECX             ; À àðãóìåíòû ðàçíîãî çíàêà?
  2019.  
  2020. 59D4B0  33 D9 3Ù
  2021.  
  2022.         JNS SHORT @@1
  2023.  
  2024. 59D4B2  79 03 y.
  2025.  
  2026.         DEC EAX
  2027.  
  2028. 59D4B4  48 H
  2029.  
  2030.         ADD EDX, ECX
  2031.  
  2032. 59D4B5  03 D1 .Ñ
  2033.  
  2034. @@1:    LEA EBP, [EBP+4]
  2035.  
  2036. 59D4B7  8D 6D 04 m.
  2037.  
  2038.         MOV [EBP], EDX
  2039.  
  2040. 59D4BA  89 55 00 ‰U.
  2041.  
  2042.         RET
  2043.  
  2044. 59D4BD  C3 Ã
  2045.  
  2046. EndCode
  2047.  
  2048. \ ================================================================
  2049. \ ‘à ¢­¥­¨ï
  2050.  
  2051. Code = ;( x1 x2 -- flag ) \ 94
  2052.  
  2053. 59D4BE  D0 D4 59 00  00 01 3D 86  D4 59 00 00  00 00 00 00 ÐÔY...=†ÔY......
  2054. 59D4CE  00 00 ..
  2055.  
  2056. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  x1 ¯®¡¨â­® à ¢¥­ x2.
  2057.      XOR  EAX, [EBP]
  2058.  
  2059. 59D4D0  33 45 00 3E.
  2060.  
  2061.      SUB  EAX, 1
  2062.  
  2063. 59D4D3  83 E8 01 ƒè.
  2064.  
  2065.      SBB  EAX, EAX
  2066.  
  2067. 59D4D6  1B C0 .À
  2068.  
  2069.      LEA EBP, [EBP+4]
  2070.  
  2071. 59D4D8  8D 6D 04 m.
  2072.  
  2073.      RET
  2074.  
  2075. 59D4DB  C3 Ã
  2076.  
  2077. EndCode
  2078.  
  2079. Code <> ;( x1 x2 -- flag ) \ 94 CORE EXT
  2080.  
  2081. 59D4DC  F0 D4 59 00  00 02 3C 3E  C3 D4 59 00  00 00 00 00 ðÔY...<>ÃÔY.....
  2082. 59D4EC  00 00 00 00 ....
  2083.  
  2084. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  x1 ­¥ à ¢¥­ x2.
  2085.      XOR  EAX, [EBP]
  2086.  
  2087. 59D4F0  33 45 00 3E.
  2088.  
  2089.      NEG  EAX
  2090.  
  2091. 59D4F3  F7 D8 ÷Ø
  2092.  
  2093.      SBB  EAX,  EAX
  2094.  
  2095. 59D4F5  1B C0 .À
  2096.  
  2097.      LEA EBP, [EBP+4]
  2098.  
  2099. 59D4F7  8D 6D 04 m.
  2100.  
  2101.      RET
  2102.  
  2103. 59D4FA  C3 Ã
  2104.  
  2105. EndCode
  2106.  
  2107. Code < ;( n1 n2 -- flag ) \ 94
  2108.  
  2109. 59D4FB  10 D5 59 00  00 01 3C E1  D4 59 00 00  00 00 00 00 .ÕY...<áÔY......
  2110. 59D50B  00 00 00 00  00 .....
  2111.  
  2112. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  n1 ¬¥­ìè¥ n2.
  2113.        CMP  [EBP], EAX
  2114.  
  2115. 59D510  39 45 00 9E.
  2116.  
  2117.        SETGE AL
  2118.  
  2119. 59D513  0F 9D C0 .À
  2120.  
  2121.        AND  EAX, 01
  2122.  
  2123. 59D516  83 E0 01 ƒà.
  2124.  
  2125.        DEC  EAX
  2126.  
  2127. 59D519  48 H
  2128.  
  2129.        LEA EBP, [EBP+4]
  2130.  
  2131. 59D51A  8D 6D 04 m.
  2132.  
  2133.        RET
  2134.  
  2135. 59D51D  C3 Ã
  2136.  
  2137. EndCode
  2138.  
  2139. Code > ;( n1 n2 -- flag ) \ 94
  2140.  
  2141. 59D51E  30 D5 59 00  00 01 3E 00  D5 59 00 00  00 00 00 00 0ÕY...>.ÕY......
  2142. 59D52E  00 00 ..
  2143.  
  2144. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  n1 ¡®«ìè¥ n2.
  2145.        CMP  EAX, [EBP]
  2146.  
  2147. 59D530  3B 45 00 ;E.
  2148.  
  2149.        SETGE AL
  2150.  
  2151. 59D533  0F 9D C0 .À
  2152.  
  2153.        AND  EAX, 01
  2154.  
  2155. 59D536  83 E0 01 ƒà.
  2156.  
  2157.        DEC  EAX
  2158.  
  2159. 59D539  48 H
  2160.  
  2161.        LEA EBP, [EBP+4]
  2162.  
  2163. 59D53A  8D 6D 04 m.
  2164.  
  2165.        RET
  2166.  
  2167. 59D53D  C3 Ã
  2168.  
  2169. EndCode
  2170.  
  2171. Code WITHIN     ;( n1 low high -- f1 ) \ f1=true if ((n1 >= low) & (n1 < high))
  2172.  
  2173. 59D53E  50 D5 59 00  00 06 57 49  54 48 49 4E  23 D5 59 00 PÕY...WITHIN#ÕY.
  2174. 59D54E  00 00 ..
  2175.  
  2176.       MOV  EBX, [EBP+4]
  2177.  
  2178. 59D550  8B 5D 04 ‹].
  2179.  
  2180.       SUB  EAX, [EBP]
  2181.  
  2182. 59D553  2B 45 00 +E.
  2183.  
  2184.       SUB  EBX, [EBP]
  2185.  
  2186. 59D556  2B 5D 00 +].
  2187.  
  2188.       SUB  EBX, EAX
  2189.  
  2190. 59D559  2B D8 +Ø
  2191.  
  2192.       SBB  EAX, EAX
  2193.  
  2194. 59D55B  1B C0 .À
  2195.  
  2196.       ADD  EBP, 8
  2197.  
  2198. 59D55D  83 C5 08 ƒÅ.
  2199.  
  2200.       RET
  2201.  
  2202. 59D560  C3 Ã
  2203.  
  2204. EndCode
  2205.  
  2206. Code D< ;( d1 d2 -- flag ) \ DOUBLE
  2207.  
  2208. 59D561  70 D5 59 00  00 02 44 3C  43 D5 59 00  00 00 00 pÕY...D<CÕY....
  2209.  
  2210. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  d1 ¬¥­ìè¥ d2.
  2211.      MOV EBX, [EBP]
  2212.  
  2213. 59D570  8B 5D 00 ‹].
  2214.  
  2215.      CMP DWORD PTR [EBP +8 ], EBX
  2216.  
  2217. 59D573  39 5D 08 9].
  2218.  
  2219.      SBB DWORD PTR [EBP +4 ], EAX
  2220.  
  2221. 59D576  19 45 04 .E.
  2222.  
  2223.      MOV EAX,  0
  2224.  
  2225. 59D579  B8 00 00 00  00 ¸....
  2226.  
  2227.      SIF <
  2228.  
  2229. 59D57E  7D 01 }.
  2230.  
  2231.        DEC EAX
  2232.  
  2233. 59D580  48 H
  2234.  
  2235.      STHEN
  2236.      ADD EBP,   0CH
  2237.  
  2238. 59D581  83 C5 0C ƒÅ.
  2239.  
  2240.      RET
  2241.  
  2242. 59D584  C3 Ã
  2243.  
  2244. EndCode
  2245.  
  2246. Code D> ;( d1 d2 -- flag ) \ DOUBLE
  2247.  
  2248. 59D585  A0 D5 59 00  00 02 44 3E  66 D5 59 00  00 00 00 00  ÕY...D>fÕY.....
  2249. 59D595  00 00 00 00  00 00 00 00  00 00 00 ...........
  2250.  
  2251. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  d1 ¡®«ìè¥ d2.
  2252.     MOV EBX, [EBP]
  2253.  
  2254. 59D5A0  8B 5D 00 ‹].
  2255.  
  2256.     CMP EBX, [EBP+8]
  2257.  
  2258. 59D5A3  3B 5D 08 ;].
  2259.  
  2260.     SBB EAX, [EBP+4]
  2261.  
  2262. 59D5A6  1B 45 04 .E.
  2263.  
  2264.     SAR EAX,   1FH
  2265.  
  2266. 59D5A9  C1 F8 1F Áø.
  2267.  
  2268.     ADD EBP,   0CH
  2269.  
  2270. 59D5AC  83 C5 0C ƒÅ.
  2271.  
  2272.     RET
  2273.  
  2274. 59D5AF  C3 Ã
  2275.  
  2276. EndCode
  2277.  
  2278. Code U< ;( u1 u2 -- flag ) \ 94
  2279.  
  2280. 59D5B0  C0 D5 59 00  00 02 55 3C  8A D5 59 00  00 00 00 00 ÀÕY...U<ŠÕY.....
  2281.  
  2282. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  u1 ¬¥­ìè¥ u2.
  2283.     CMP  [EBP], EAX
  2284.  
  2285. 59D5C0  39 45 00 9E.
  2286.  
  2287.     SBB  EAX, EAX
  2288.  
  2289. 59D5C3  1B C0 .À
  2290.  
  2291.     ADD  EBP,  04
  2292.  
  2293. 59D5C5  83 C5 04 ƒÅ.
  2294.  
  2295.     RET
  2296.  
  2297. 59D5C8  C3 Ã
  2298.  
  2299. EndCode
  2300.  
  2301. Code U> ;( u1 u2 -- flag ) \ 94
  2302.  
  2303. 59D5C9  E0 D5 59 00  00 02 55 3E  B5 D5 59 00  00 00 00 00 àÕY...U>µÕY.....
  2304. 59D5D9  00 00 00 00  00 00 00 .......
  2305.  
  2306. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  u1 ¡®«ìè¥ u2.
  2307.     CMP  EAX, [EBP]
  2308.  
  2309. 59D5E0  3B 45 00 ;E.
  2310.  
  2311.     SBB  EAX, EAX
  2312.  
  2313. 59D5E3  1B C0 .À
  2314.  
  2315.     ADD  EBP,   04
  2316.  
  2317. 59D5E5  83 C5 04 ƒÅ.
  2318.  
  2319.     RET
  2320.  
  2321. 59D5E8  C3 Ã
  2322.  
  2323. EndCode
  2324.  
  2325. Code 0< ;( n -- flag ) \ 94
  2326.  
  2327. 59D5E9  00 D6 59 00  00 02 30 3C  CE D5 59 00  00 00 00 00 .ÖY...0<ÎÕY.....
  2328. 59D5F9  00 00 00 00  00 00 00 .......
  2329.  
  2330. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  n ¬¥­ìè¥ ­ã«ï.
  2331.     SAR EAX,   1F
  2332.  
  2333. 59D600  C1 F8 1F Áø.
  2334.  
  2335.     RET
  2336.  
  2337. 59D603  C3 Ã
  2338.  
  2339. EndCode
  2340.  
  2341. Code 0= ;( x -- flag ) \ 94
  2342.  
  2343. 59D604  10 D6 59 00  00 02 30 3D  EE D5 59 00 .ÖY...0=îÕY.
  2344.  
  2345. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  x à ¢­® ­ã«î.
  2346.      SUB  EAX, 1
  2347.  
  2348. 59D610  83 E8 01 ƒè.
  2349.  
  2350.      SBB  EAX, EAX
  2351.  
  2352. 59D613  1B C0 .À
  2353.  
  2354.      RET
  2355.  
  2356. 59D615  C3 Ã
  2357.  
  2358. EndCode
  2359.  
  2360. Code 0<> ;( x -- flag ) \ 94 CORE EXT
  2361.  
  2362. 59D616  30 D6 59 00  00 03 30 3C  3E 09 D6 59  00 00 00 00 0ÖY...0<>.ÖY....
  2363. 59D626  00 00 00 00  00 00 00 00  00 00 ..........
  2364.  
  2365. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  x ­¥ à ¢­® ­ã«î.
  2366.      NEG  EAX
  2367.  
  2368. 59D630  F7 D8 ÷Ø
  2369.  
  2370.      SBB  EAX, EAX
  2371.  
  2372. 59D632  1B C0 .À
  2373.  
  2374.      RET
  2375.  
  2376. 59D634  C3 Ã
  2377.  
  2378. EndCode
  2379.  
  2380. Code D0= ;( xd -- flag ) \ 94 DOUBLE
  2381.  
  2382. 59D635  50 D6 59 00  00 03 44 30  3D 1B D6 59  00 00 00 00 PÖY...D0=.ÖY....
  2383. 59D645  00 00 00 00  00 00 00 00  00 00 00 ...........
  2384.  
  2385. ; flag "¨á⨭ " ⮣¤  ¨ ⮫쪮 ⮣¤ , ª®£¤  xd à ¢¥­ ­ã«î.
  2386.      OR   EAX, [EBP]
  2387.  
  2388. 59D650  0B 45 00 .E.
  2389.  
  2390.      SUB  EAX, 1
  2391.  
  2392. 59D653  83 E8 01 ƒè.
  2393.  
  2394.      SBB  EAX, EAX
  2395.  
  2396. 59D656  1B C0 .À
  2397.  
  2398.      LEA EBP, [EBP+4]
  2399.  
  2400. 59D658  8D 6D 04 m.
  2401.  
  2402.      RET
  2403.  
  2404. 59D65B  C3 Ã
  2405.  
  2406. EndCode
  2407.  
  2408. Code D= ;( xd1 xd2 -- flag ) \ 94 DOUBLE
  2409.  
  2410. 59D65C  70 D6 59 00  00 02 44 3D  3A D6 59 00  00 00 00 00 pÖY...D=:ÖY.....
  2411. 59D66C  00 00 00 00 ....
  2412.  
  2413. ; flag is true if and only if xd1 is bit-for-bit the same as xd2
  2414.      MOV  EDX,[EBP]
  2415.  
  2416. 59D670  8B 55 00 ‹U.
  2417.  
  2418.      XOR  EAX,[EBP+4]
  2419.  
  2420. 59D673  33 45 04 3E.
  2421.  
  2422.      XOR  EDX,[EBP+8]
  2423.  
  2424. 59D676  33 55 08 3U.
  2425.  
  2426.       OR  EAX,EDX
  2427.  
  2428. 59D679  0B C2 .Â
  2429.  
  2430.      SUB  EAX,1
  2431.  
  2432. 59D67B  83 E8 01 ƒè.
  2433.  
  2434.      SBB  EAX,EAX
  2435.  
  2436. 59D67E  1B C0 .À
  2437.  
  2438.      LEA  EBP,[EBP+0CH]
  2439.  
  2440. 59D680  8D 6D 0C m.
  2441.  
  2442.      RET
  2443.  
  2444. 59D683  C3 Ã
  2445.  
  2446. EndCode
  2447.  
  2448. Code D2* ;( xd1 -- xd2 ) \ 94 DOUBLE
  2449.  
  2450. 59D684  A0 D6 59 00  00 03 44 32  2A 61 D6 59  00 00 00 00  ÖY...D2*aÖY....
  2451. 59D694  00 00 00 00  00 00 00 00  00 00 00 00 ............
  2452.  
  2453. ; xd2 is the result of shifting xd1 one bit toward the most-significant
  2454. ; bit, filling the vacated least-significant bit with zero    
  2455.      SHL DWORD PTR [EBP],  1
  2456.  
  2457. 59D6A0  D1 65 00 Ñe.
  2458.  
  2459.      RCL  EAX,   1
  2460.  
  2461. 59D6A3  D1 D0 ÑÐ
  2462.  
  2463.      RET
  2464.  
  2465. 59D6A5  C3 Ã
  2466.  
  2467. EndCode
  2468.  
  2469. Code D2/ ;( xd1 -- xd2 ) \ 94 DOUBLE
  2470.  
  2471. 59D6A6  C0 D6 59 00  00 03 44 32  2F 89 D6 59  00 00 00 00 ÀÖY...D2/‰ÖY....
  2472. 59D6B6  00 00 00 00  00 00 00 00  00 00 ..........
  2473.  
  2474. ; xd2 is the result of shifting xd1 one bit toward the least-significant bit,
  2475. ; leaving the most-significant bit unchanged
  2476.      SAR  EAX,  1
  2477.  
  2478. 59D6C0  D1 F8 Ñø
  2479.  
  2480.      RCR DWORD PTR [EBP], 1
  2481.  
  2482. 59D6C2  D1 5D 00 Ñ].
  2483.  
  2484.      RET
  2485.  
  2486. 59D6C5  C3 Ã
  2487.  
  2488. EndCode
  2489.  
  2490. \ ================================================================
  2491. \ ‘âப¨
  2492.  
  2493. Code -TRAILING ;( c-addr u1 -- c-addr u2 ) \ 94 STRING
  2494.  
  2495. 59D6C6  E0 D6 59 00  00 09 2D 54  52 41 49 4C  49 4E 47 AB àÖY...-TRAILING«
  2496. 59D6D6  D6 59 00 00  00 00 00 00  00 00 ÖY........
  2497.  
  2498. ; …᫨ u1 ¡®«ìè¥ ­ã«ï, u2 à ¢­® u1, 㬥­ì襭­®¬ã ­  ª®«¨ç¥á⢮ ¯à®¡¥«®¢ ¢ ª®­æ¥
  2499. ; ᨬ¢®«ì­®© áâப¨, § ¤ ­­®© c-addr ¨ u1. …᫨ u1 ­®«ì ¨«¨ ¢áï áâப  á®á⮨â
  2500. ; ¨§ ¯à®¡¥«®¢, u2 ­®«ì.
  2501.      PUSH EDI
  2502.  
  2503. 59D6E0  57 W
  2504.  
  2505.      MOV  ECX, EAX
  2506.  
  2507. 59D6E1  8B C8 ‹È
  2508.  
  2509.      SIF C0<>
  2510.  
  2511. 59D6E3  E3 11 ã.
  2512.  
  2513.        MOV EDI, DWORD PTR [EBP]
  2514.  
  2515. 59D6E5  8B 7D 00 ‹}.
  2516.  
  2517.        ADD EDI, ECX
  2518.  
  2519. 59D6E8  03 F9 .ù
  2520.  
  2521.        DEC EDI
  2522.  
  2523. 59D6EA  4F O
  2524.  
  2525.        MOV AL,  20H
  2526.  
  2527. 59D6EB  B0 20 °
  2528.  
  2529.        STD
  2530.  
  2531. 59D6ED  FD ý
  2532.  
  2533.        REPZ SCASB
  2534.  
  2535. 59D6EE  F3 AE ó®
  2536.  
  2537.        SIF 0<>
  2538.  
  2539. 59D6F0  74 01 t.
  2540.  
  2541.           INC ECX
  2542.  
  2543. 59D6F2  41 A
  2544.  
  2545.        STHEN
  2546.        CLD
  2547.  
  2548. 59D6F3  FC ü
  2549.  
  2550.        MOV  EAX, ECX
  2551.  
  2552. 59D6F4  8B C1 ‹Á
  2553.  
  2554.      STHEN
  2555.      POP EDI
  2556.  
  2557. 59D6F6  5F _
  2558.  
  2559.      RET
  2560.  
  2561. 59D6F7  C3 Ã
  2562.  
  2563. EndCode
  2564.  
  2565. Code COMPARE ;( c-addr1 u1 c-addr2 u2 -- n ) \ 94 STRING !!!!!
  2566.  
  2567. 59D6F8  10 D7 59 00  00 07 43 4F  4D 50 41 52  45 CB D6 59 .×Y...COMPAREËÖY
  2568. 59D708  00 00 00 00  00 00 00 00 ........
  2569.  
  2570. ; ‘à ¢­¨âì áâபã, § ¤ ­­ãî c-addr1 u1, á® áâப®©, § ¤ ­­®© c-addr2 u2.
  2571. ; ‘âப¨ áà ¢­¨¢ îâáï, ­ ç¨­ ï á § ¤ ­­ëå  ¤à¥á®¢, ᨬ¢®« §  ᨬ¢®«®¬, ¤® ¤«¨­ë
  2572. ; ­ ¨¡®«¥¥ ª®à®âª®© ¨§ áâப ¨«¨ ¤® ­ å®¦¤¥­¨ï à §«¨ç¨©. …᫨ ¤¢¥ áâப¨
  2573. ; ¨¤¥­â¨ç­ë, n ­®«ì. …᫨ ¤¢¥ áâப¨ ¨¤¥­â¨ç­ë ¤® ¤«¨­ë ­ ¨¡®«¥¥ ª®à®âª®© ¨§
  2574. ; áâப, â® n ¬¨­ãá ¥¤¨­¨æ  (-1), ¥á«¨ u1 ¬¥­ìè¥ u2, ¨­ ç¥ ¥¤¨­¨æ  (1).
  2575. ; …᫨ ¤¢¥ áâப¨ ­¥ ¨¤¥­â¨ç­ë ¤® ¤«¨­ë ­ ¨¡®«¥¥ ª®à®âª®© ¨§ áâப, â® n ¬¨­ãá
  2576. ; ¥¤¨­¨æ  (-1), ¥á«¨ ¯¥à¢ë© ­¥á®¢¯ ¤ î騩 ᨬ¢®« áâப¨, § ¤ ­­®© c-addr1 u1
  2577. ; ¨¬¥¥â ¬¥­ì襥 ç¨á«®¢®¥ §­ ç¥­¨¥, 祬 ᮮ⢥âáâ¢ãî騩 ᨬ¢®« ¢ áâப¥,
  2578. ; § ¤ ­­®© c-addr2 u2, ¨ ¥¤¨­¨æ  ¢ ¯à®â¨¢­®¬ á«ãç ¥.
  2579.    PUSH EDI
  2580.  
  2581. 59D710  57 W
  2582.  
  2583.    MOV  ECX, EAX
  2584.  
  2585. 59D711  8B C8 ‹È
  2586.  
  2587.    SUB  EAX, EAX
  2588.  
  2589. 59D713  2B C0 +À
  2590.  
  2591.    CMP  ECX, [EBP +4 ]
  2592.  
  2593. 59D715  3B 4D 04 ;M.
  2594.  
  2595.    SIF 0<>
  2596.  
  2597. 59D718  74 09 t.
  2598.  
  2599.       SIF U<
  2600.  
  2601. 59D71A  73 03 s.
  2602.  
  2603.          INC   EAX
  2604.  
  2605. 59D71C  40 @
  2606.  
  2607.       SELSE
  2608.  
  2609. 59D71D  EB 04 ë.
  2610.  
  2611.          DEC EAX
  2612.  
  2613. 59D71F  48 H
  2614.  
  2615.          MOV ECX, [EBP +4 ]
  2616.  
  2617. 59D720  8B 4D 04 ‹M.
  2618.  
  2619.       STHEN
  2620.    STHEN
  2621.    MOV ESI, [EBP + { 2 CELLS } ]
  2622.  
  2623. 59D723  8B 75 08 ‹u.
  2624.  
  2625.    MOV EDI, [EBP]
  2626.  
  2627. 59D726  8B 7D 00 ‹}.
  2628.  
  2629.    REPE CMPSB
  2630.  
  2631. 59D729  F3 A6 ó¦
  2632.  
  2633.    SIF 0<>
  2634.  
  2635. 59D72B  74 0E t.
  2636.  
  2637.       SIF U>=
  2638.  
  2639. 59D72D  72 07 r.
  2640.  
  2641.          MOV EAX,  1
  2642.  
  2643. 59D72F  B8 01 00 00  00 ¸....
  2644.  
  2645.       SELSE
  2646.  
  2647. 59D734  EB 05 ë.
  2648.  
  2649.          MOV EAX, -1
  2650.  
  2651. 59D736  B8 FF FF FF  FF ¸ÿÿÿÿ
  2652.  
  2653.       STHEN
  2654.    STHEN
  2655.    LEA  EBP, [EBP + { 3 CELLS } ]
  2656.  
  2657. 59D73B  8D 6D 0C m.
  2658.  
  2659.    POP EDI          
  2660.  
  2661. 59D73E  5F _
  2662.  
  2663.    RET
  2664.  
  2665. 59D73F  C3 Ã
  2666.  
  2667. EndCode
  2668.  
  2669. Code SEARCH ;( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) \ 94 STRING
  2670.  
  2671. 59D740  50 D7 59 00  00 06 53 45  41 52 43 48  FD D6 59 00 P×Y...SEARCHýÖY.
  2672.  
  2673. ; à®¨§¢¥á⨠¯®¨áª ¢ áâப¥, § ¤ ­­®© c-addr1 u1, áâப¨, § ¤ ­­®© c-addr2 u2.
  2674. ; …᫨ ä« £ "¨á⨭ ", ᮢ¯ ¤¥­¨¥ ­ ©¤¥­® ¯®  ¤à¥áã c-addr3 á ®á⠢訬¨áï u3
  2675. ; ᨬ¢®« ¬¨. …᫨ ä« £ "«®¦ì", ᮢ¯ ¤¥­¨ï ­¥ ­ ©¤¥­®, ¨ c-addr3 ¥áâì c-addr1,
  2676. ; ¨ u3 ¥áâì u1.        \ !!!!!
  2677.       LEA EBP, [EBP-4]
  2678.  
  2679. 59D750  8D 6D FC mü
  2680.  
  2681.       MOV  [EBP], EAX
  2682.  
  2683. 59D753  89 45 00 ‰E.
  2684.  
  2685.       PUSH EDI
  2686.  
  2687. 59D756  57 W
  2688.  
  2689.       CLD
  2690.  
  2691. 59D757  FC ü
  2692.  
  2693.       MOV EBX, DWORD PTR [EBP]
  2694.  
  2695. 59D758  8B 5D 00 ‹].
  2696.  
  2697.       OR  EBX, EBX
  2698.  
  2699. 59D75B  0B DB .Û
  2700.  
  2701.       SIF 0<>
  2702.  
  2703. 59D75D  74 35 t5
  2704.  
  2705.         MOV EDX, DWORD PTR [EBP + { 2 CELLS } ]
  2706.  
  2707. 59D75F  8B 55 08 ‹U.
  2708.  
  2709.         MOV EDI, DWORD PTR [EBP + { 3 CELLS } ]
  2710.  
  2711. 59D762  8B 7D 0C ‹}.
  2712.  
  2713.         ADD EDX, EDI
  2714.  
  2715. 59D765  03 D7 .×
  2716.  
  2717.         SBEGIN
  2718.            MOV ESI, DWORD PTR [EBP +4 ]
  2719.  
  2720. 59D767  8B 75 04 ‹u.
  2721.  
  2722.            LODSB
  2723.  
  2724. 59D76A  AC ¬
  2725.  
  2726.            MOV ECX, EDX
  2727.  
  2728. 59D76B  8B CA ‹Ê
  2729.  
  2730.            SUB ECX, EDI
  2731.  
  2732. 59D76D  2B CF +Ï
  2733.  
  2734.            JECXZ LLD
  2735.  
  2736. 59D76F  E3 2A ã*
  2737.  
  2738.            REPNZ
  2739.  
  2740. 59D771  F2 ò
  2741.  
  2742.            SCASB
  2743.  
  2744. 59D772  AE ®
  2745.  
  2746.            JNE SHORT LLD   ; ¢® ¢á¥© áâப¥ ­¥â ¯¥à¢®£® ᨬ¢®«  ¨áª®¬®© áâப¨
  2747.  
  2748. 59D773  75 26 u&
  2749.  
  2750.            CMP EBX,   1
  2751.  
  2752. 59D775  83 FB 01 ƒû.
  2753.  
  2754.            JZ SHORT LLC   ; ¨áª®¬ ï áâப  ¨¬¥«  ¤«¨­ã 1 ¨ ­ ©¤¥­ 
  2755.  
  2756. 59D778  74 11 t.
  2757.  
  2758.            MOV ECX, EBX
  2759.  
  2760. 59D77A  8B CB ‹Ë
  2761.  
  2762.            DEC ECX
  2763.  
  2764. 59D77C  49 I
  2765.  
  2766.            MOV EAX, EDX
  2767.  
  2768. 59D77D  8B C2 ‹Â
  2769.  
  2770.            SUB EAX, EDI
  2771.  
  2772. 59D77F  2B C7 +Ç
  2773.  
  2774.            CMP EAX, ECX
  2775.  
  2776. 59D781  3B C1 ;Á
  2777.  
  2778.            JC SHORT LLD   ; ®áâ â®ª áâப¨ ª®à®ç¥ ¨áª®¬®© áâப¨
  2779.  
  2780. 59D783  72 16 r.
  2781.  
  2782.            PUSH EDI
  2783.  
  2784. 59D785  57 W
  2785.  
  2786.            REPZ CMPSB
  2787.  
  2788. 59D786  F3 A6 ó¦
  2789.  
  2790.            POP EDI
  2791.  
  2792. 59D788  5F _
  2793.  
  2794.         SUNTIL 0=
  2795.  
  2796. 59D789  75 DC uÜ
  2797.  
  2798. LLC:    DEC EDI       ; ­ è«¨ ¯®«­®¥ ᮢ¯ ¤¥­¨¥
  2799.  
  2800. 59D78B  4F O
  2801.  
  2802.         SUB EDX, EDI
  2803.  
  2804. 59D78C  2B D7 +×
  2805.  
  2806.         MOV  DWORD PTR [EBP + { 3 CELLS } ], EDI
  2807.  
  2808. 59D78E  89 7D 0C ‰}.
  2809.  
  2810.         MOV  DWORD PTR [EBP + { 2 CELLS } ], EDX
  2811.  
  2812. 59D791  89 55 08 ‰U.
  2813.  
  2814.       STHEN
  2815.       MOV EAX,   -1
  2816.  
  2817. 59D794  B8 FF FF FF  FF ¸ÿÿÿÿ
  2818.  
  2819.       JMP SHORT LLA
  2820.  
  2821. 59D799  EB 02 ë.
  2822.  
  2823. LLD:  XOR EAX, EAX
  2824.  
  2825. 59D79B  33 C0 3À
  2826.  
  2827. LLA:  LEA EBP, [EBP+4]
  2828.  
  2829. 59D79D  8D 6D 04 m.
  2830.  
  2831.       MOV [EBP], EAX
  2832.  
  2833. 59D7A0  89 45 00 ‰E.
  2834.  
  2835.       POP EDI
  2836.  
  2837. 59D7A3  5F _
  2838.  
  2839.       MOV EAX, [EBP]
  2840.  
  2841. 59D7A4  8B 45 00 ‹E.
  2842.  
  2843.       LEA EBP, [EBP+4]
  2844.  
  2845. 59D7A7  8D 6D 04 m.
  2846.  
  2847.       RET
  2848.  
  2849. 59D7AA  C3 Ã
  2850.  
  2851. EndCode
  2852.  
  2853. Code CMOVE ;( c-addr1 c-addr2 u -- ) \ 94 STRING
  2854.  
  2855. 59D7AB  C0 D7 59 00  00 05 43 4D  4F 56 45 45  D7 59 00 00 À×Y...CMOVEE×Y..
  2856. 59D7BB  00 00 00 00  00 .....
  2857.  
  2858. ; …᫨ u ¡®«ìè¥ ­ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ â¥«ì­ëå ᨬ¢®«®¢ ¨§ ¯à®áâà ­á⢠
  2859. ; ¤ ­­ëå ­ ç¨­ ï á  ¤à¥á  c-addr1 ¢ c-addr2, ᨬ¢®« §  ᨬ¢®«®¬, ­ ç¨­ ï á
  2860. ; ¬« ¤è¨å  ¤à¥á®¢ ª áâ à訬.
  2861.      MOV  EDX, EDI
  2862.  
  2863. 59D7C0  8B D7 ‹×
  2864.  
  2865.      MOV  ECX, EAX
  2866.  
  2867. 59D7C2  8B C8 ‹È
  2868.  
  2869.      MOV  EDI, DWORD PTR [EBP]
  2870.  
  2871. 59D7C4  8B 7D 00 ‹}.
  2872.  
  2873.      MOV  ESI, DWORD PTR [EBP +4 ]
  2874.  
  2875. 59D7C7  8B 75 04 ‹u.
  2876.  
  2877.      CLD
  2878.  
  2879. 59D7CA  FC ü
  2880.  
  2881.      REPZ   MOVSB
  2882.  
  2883. 59D7CB  F3 A4 ó¤
  2884.  
  2885.      LEA EBP, [EBP+0CH]
  2886.  
  2887. 59D7CD  8D 6D 0C m.
  2888.  
  2889.      MOV EAX, [EBP-4]
  2890.  
  2891. 59D7D0  8B 45 FC ‹Eü
  2892.  
  2893.      MOV EDI, EDX
  2894.  
  2895. 59D7D3  8B FA ‹ú
  2896.  
  2897.      RET
  2898.  
  2899. 59D7D5  C3 Ã
  2900.  
  2901. EndCode
  2902.  
  2903. : QCMOVE CMOVE ;
  2904.  
  2905. 59D7D6  F0 D7 59 00  00 06 51 43  4D 4F 56 45  B0 D7 59 00 ð×Y...QCMOVE°×Y.
  2906. 59D7E6  00 00 00 00  00 00 00 00  00 00 ..........
  2907.  
  2908.                 CALL    @@CMOVE
  2909.                 RET
  2910.  
  2911. Code CMOVE> ;( c-addr1 c-addr2 u -- ) \ 94 STRING
  2912.  
  2913. 59D7F6  10 D8 59 00  00 06 43 4D  4F 56 45 3E  DB D7 59 00 .ØY...CMOVE>Û×Y.
  2914. 59D806  00 00 00 00  00 00 00 00  00 00 ..........
  2915.  
  2916. ; …᫨ u ¡®«ìè¥ ­ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ â¥«ì­ëå ᨬ¢®«®¢ ¨§ ¯à®áâà ­á⢠
  2917. ; ¤ ­­ëå ­ ç¨­ ï á  ¤à¥á  c-addr1 ¢ c-addr2, ᨬ¢®« §  ᨬ¢®«®¬, ­ ç¨­ ï á®
  2918. ; áâ àè¨å  ¤à¥á®¢ ª ¬« ¤è¨¬.
  2919.  
  2920.        MOV EDX, EDI
  2921.  
  2922. 59D810  8B D7 ‹×
  2923.  
  2924.        MOV ECX, EAX
  2925.  
  2926. 59D812  8B C8 ‹È
  2927.  
  2928.        MOV EDI, [EBP]
  2929.  
  2930. 59D814  8B 7D 00 ‹}.
  2931.  
  2932.        MOV ESI, [EBP+4]
  2933.  
  2934. 59D817  8B 75 04 ‹u.
  2935.  
  2936.        STD
  2937.  
  2938. 59D81A  FD ý
  2939.  
  2940.        ADD EDI, ECX
  2941.  
  2942. 59D81B  03 F9 .ù
  2943.  
  2944.        DEC EDI
  2945.  
  2946. 59D81D  4F O
  2947.  
  2948.        ADD ESI, ECX
  2949.  
  2950. 59D81E  03 F1 .ñ
  2951.  
  2952.        DEC ESI
  2953.  
  2954. 59D820  4E N
  2955.  
  2956.        REP MOVSB
  2957.  
  2958. 59D821  F3 A4 ó¤
  2959.  
  2960.        MOV EDI, EDX
  2961.  
  2962. 59D823  8B FA ‹ú
  2963.  
  2964.        LEA EBP, [EBP+0CH]
  2965.  
  2966. 59D825  8D 6D 0C m.
  2967.  
  2968.        MOV EAX, [EBP-4]
  2969.  
  2970. 59D828  8B 45 FC ‹Eü
  2971.  
  2972.      RET
  2973.  
  2974. 59D82B  C3 Ã
  2975.  
  2976. EndCode
  2977.  
  2978. Code FILL ;( c-addr u char -- ) \ 94  \ !!!!!
  2979.  
  2980. 59D82C  40 D8 59 00  00 04 46 49  4C 4C FB D7  59 00 00 00 @ØY...FILLû×Y...
  2981. 59D83C  00 00 00 00 ....
  2982.  
  2983. ; …᫨ u ¡®«ìè¥ ­ã«ï, § á« âì char ¢ u ¡ ©â®¢ ¯®  ¤à¥áã c-addr.
  2984.    MOV EDX, EDI
  2985.  
  2986. 59D840  8B D7 ‹×
  2987.  
  2988.    MOV ECX, [EBP]
  2989.  
  2990. 59D842  8B 4D 00 ‹M.
  2991.  
  2992.    MOV EDI, [EBP+4]
  2993.  
  2994. 59D845  8B 7D 04 ‹}.
  2995.  
  2996.    CLD
  2997.  
  2998. 59D848  FC ü
  2999.  
  3000.    REP STOSB
  3001.  
  3002. 59D849  F3 AA óª
  3003.  
  3004.    MOV EDI, EDX
  3005.  
  3006. 59D84B  8B FA ‹ú
  3007.  
  3008.    LEA EBP, [EBP+0CH]
  3009.  
  3010. 59D84D  8D 6D 0C m.
  3011.  
  3012.    MOV EAX, [EBP-4]
  3013.  
  3014. 59D850  8B 45 FC ‹Eü
  3015.  
  3016.    RET
  3017.  
  3018. 59D853  C3 Ã
  3019.  
  3020. EndCode
  3021.  
  3022. Code ZCOUNT ;( c-addr -- c-addr u )
  3023.  
  3024. 59D854  70 D8 59 00  00 06 5A 43  4F 55 4E 54  31 D8 59 00 pØY...ZCOUNT1ØY.
  3025. 59D864  00 00 00 00  00 00 00 00  00 00 00 00 ............
  3026.  
  3027.      LEA EBP, [EBP-4]
  3028.  
  3029. 59D870  8D 6D FC mü
  3030.  
  3031.      MOV  [EBP], EAX
  3032.  
  3033. 59D873  89 45 00 ‰E.
  3034.  
  3035.      XOR  EBX, EBX
  3036.  
  3037. 59D876  33 DB 3Û
  3038.  
  3039.      SBEGIN
  3040.        MOV  BL, BYTE PTR [EAX ]
  3041.  
  3042. 59D878  8A 18 Š.
  3043.  
  3044.        INC  EAX
  3045.  
  3046. 59D87A  40 @
  3047.  
  3048.        OR   BL,  BL
  3049.  
  3050. 59D87B  0A DB .Û
  3051.  
  3052.      SUNTIL 0=
  3053.  
  3054. 59D87D  75 F9 uù
  3055.  
  3056.      DEC  EAX
  3057.  
  3058. 59D87F  48 H
  3059.  
  3060.      SUB  EAX, [EBP]
  3061.  
  3062. 59D880  2B 45 00 +E.
  3063.  
  3064.      RET
  3065.  
  3066. 59D883  C3 Ã
  3067.  
  3068. EndCode
  3069.  
  3070. \ ================================================================
  3071. \ “ª § â¥«¨ á⥪®¢
  3072.  
  3073. Code SP! ;( A -> )
  3074.  
  3075. 59D884  A0 D8 59 00  00 03 53 50  21 59 D8 59  00 00 00 00  ØY...SP!YØY....
  3076. 59D894  00 00 00 00  00 00 00 00  00 00 00 00 ............
  3077.  
  3078.      LEA EBP, [EAX+4]
  3079.  
  3080. 59D8A0  8D 68 04 h.
  3081.  
  3082.      MOV EAX, [EBP-4]
  3083.  
  3084. 59D8A3  8B 45 FC ‹Eü
  3085.  
  3086.      RET
  3087.  
  3088. 59D8A6  C3 Ã
  3089.  
  3090. EndCode
  3091.  
  3092. Code RP! ;( A -> )
  3093.  
  3094. 59D8A7  C0 D8 59 00  00 03 52 50  21 89 D8 59  00 00 00 00 ÀØY...RP!‰ØY....
  3095. 59D8B7  00 00 00 00  00 00 00 00  00 .........
  3096.  
  3097.      POP EBX
  3098.  
  3099. 59D8C0  5B [
  3100.  
  3101.      MOV ESP, EAX
  3102.  
  3103. 59D8C1  8B E0 ‹à
  3104.  
  3105.      MOV EAX, [EBP]
  3106.  
  3107. 59D8C3  8B 45 00 ‹E.
  3108.  
  3109.      LEA EBP, [EBP+4]
  3110.  
  3111. 59D8C6  8D 6D 04 m.
  3112.  
  3113.      JMP EBX
  3114.  
  3115. 59D8C9  FF E3 ÿã
  3116.  
  3117. EndCode
  3118.  
  3119. Code SP@ ;( -> A )
  3120.  
  3121. 59D8CB  E0 D8 59 00  00 03 53 50  40 AC D8 59  00 00 00 00 àØY...SP@¬ØY....
  3122. 59D8DB  00 00 00 00  00 .....
  3123.  
  3124.      LEA EBP, [EBP-4]
  3125.  
  3126. 59D8E0  8D 6D FC mü
  3127.  
  3128.      MOV [EBP], EAX
  3129.  
  3130. 59D8E3  89 45 00 ‰E.
  3131.  
  3132.      MOV EAX, EBP
  3133.  
  3134. 59D8E6  8B C5 ‹Å
  3135.  
  3136.      RET
  3137.  
  3138. 59D8E8  C3 Ã
  3139.  
  3140. EndCode
  3141.  
  3142. Code RP@ ;( -- RP )
  3143.  
  3144. 59D8E9  00 D9 59 00  00 03 52 50  40 D0 D8 59  00 00 00 00 .ÙY...RP@ÐØY....
  3145. 59D8F9  00 00 00 00  00 00 00 .......
  3146.  
  3147.      LEA EBP, [EBP-4]
  3148.  
  3149. 59D900  8D 6D FC mü
  3150.  
  3151.      MOV  [EBP], EAX
  3152.  
  3153. 59D903  89 45 00 ‰E.
  3154.  
  3155.      LEA  EAX, [ESP + 4 ]
  3156.  
  3157. 59D906  8D 44 24 04 D$.
  3158.  
  3159.      RET
  3160.  
  3161. 59D90A  C3 Ã
  3162.  
  3163. EndCode
  3164.  
  3165.  
  3166. \ ================================================================
  3167. \ ¥£¨áâà ¯®â®ª  (§ ¤ ç¨ ¢­ãâਠä®àâ )
  3168.  
  3169. Code TlsIndex! ;( x -- ) \ 㪠§ â¥«ì «®ª «ì­®£® ¯ã«  ¯®â®ª 
  3170.  
  3171. 59D90B  20 D9 59 00  00 09 54 6C  73 49 6E 64  65 78 21 EE  ÙY...TlsIndex!î
  3172. 59D91B  D8 59 00 00  00 ØY...
  3173.  
  3174.      MOV  EDI, EAX
  3175.  
  3176. 59D920  8B F8 ‹ø
  3177.  
  3178.      MOV  EAX, [EBP]
  3179.  
  3180. 59D922  8B 45 00 ‹E.
  3181.  
  3182.      LEA EBP, [EBP+4]
  3183.  
  3184. 59D925  8D 6D 04 m.
  3185.  
  3186.      RET
  3187.  
  3188. 59D928  C3 Ã
  3189.  
  3190. EndCode
  3191.  
  3192. Code TlsIndex@ ;( -- x )
  3193.  
  3194. 59D929  40 D9 59 00  00 09 54 6C  73 49 6E 64  65 78 40 10 @ÙY...TlsIndex@.
  3195. 59D939  D9 59 00 00  00 00 00 ÙY.....
  3196.  
  3197.      LEA EBP, [EBP-4]
  3198.  
  3199. 59D940  8D 6D FC mü
  3200.  
  3201.      MOV [EBP], EAX
  3202.  
  3203. 59D943  89 45 00 ‰E.
  3204.  
  3205.      MOV  EAX, EDI
  3206.  
  3207. 59D946  8B C7 ‹Ç
  3208.  
  3209.      RET
  3210.  
  3211. 59D948  C3 Ã
  3212.  
  3213. EndCode
  3214.  
  3215. \ ================================================================
  3216. \ –¨ª«ë
  3217.  
  3218. Code C-J
  3219.  
  3220. 59D949  60 D9 59 00  00 03 43 2D  4A 2E D9 59  00 00 00 00 `ÙY...C-J.ÙY....
  3221. 59D959  00 00 00 00  00 00 00 .......
  3222.  
  3223.         LEA EBP, [EBP-4]
  3224.  
  3225. 59D960  8D 6D FC mü
  3226.  
  3227.         MOV  [EBP], EAX
  3228.  
  3229. 59D963  89 45 00 ‰E.
  3230.  
  3231.         MOV EAX, DWORD PTR [ESP + { 3 CELLS } ]
  3232.  
  3233. 59D966  8B 44 24 0C ‹D$.
  3234.  
  3235.         SUB EAX, DWORD PTR [ESP + { 4 CELLS } ]
  3236.  
  3237. 59D96A  2B 44 24 10 +D$.
  3238.  
  3239.         RET
  3240.  
  3241. 59D96E  C3 Ã
  3242.  
  3243. EndCode
  3244.  
  3245. ( inline'ë ¤«ï ª®¬¯¨«ï樨 横«®¢ )
  3246.  
  3247. Code C-DO
  3248.  
  3249. 59D96F  80 D9 59 00  00 04 43 2D  44 4F 4E D9  59 00 00 00 €ÙY...C-DONÙY...
  3250. 59D97F  00 .
  3251.  
  3252.       LEA  EBP, [EBP+8]
  3253.  
  3254. 59D980  8D 6D 08 m.
  3255.  
  3256.       MOV  EDX, 80000000H
  3257.  
  3258. 59D983  BA 00 00 00  80 º...€
  3259.  
  3260.       SUB  EDX, [EBP-8]
  3261.  
  3262. 59D988  2B 55 F8 +Uø
  3263.  
  3264.       LEA  EBX, [EAX+EDX]
  3265.  
  3266. 59D98B  8D 1C 02 ..
  3267.  
  3268.       MOV  EAX, [EBP-4]
  3269.  
  3270. 59D98E  8B 45 FC ‹Eü
  3271.  
  3272.       MOV  EDX, EDX  ; FOR OPT
  3273.  
  3274. 59D991  8B D2 ‹Ò
  3275.  
  3276. ;      PUSH EDX
  3277. ;      PUSH EBX
  3278.       RET
  3279.  
  3280. 59D993  C3 Ã
  3281.  
  3282. EndCode
  3283.  
  3284. Code C-?DO
  3285.  
  3286. 59D994  B0 D9 59 00  00 05 43 2D  3F 44 4F 74  D9 59 00 00 °ÙY...C-?DOtÙY..
  3287. 59D9A4  00 00 00 00  00 00 00 00  00 00 00 00 ............
  3288.  
  3289.       CMP  EAX, [EBP-8]
  3290.  
  3291. 59D9B0  3B 45 F8 ;Eø
  3292.  
  3293.       SIF  0=
  3294.  
  3295. 59D9B3  75 05 u.
  3296.  
  3297.         MOV  EAX, [EBP-4]
  3298.  
  3299. 59D9B5  8B 45 FC ‹Eü
  3300.  
  3301.         JMP  EBX
  3302.  
  3303. 59D9B8  FF E3 ÿã
  3304.  
  3305.       STHEN
  3306.       PUSH EBX
  3307.  
  3308. 59D9BA  53 S
  3309.  
  3310.       MOV     EBX , 80000000
  3311.  
  3312. 59D9BB  BB 00 00 00  80 »...€
  3313.  
  3314.       SUB  EBX, [EBP-8]
  3315.  
  3316. 59D9C0  2B 5D F8 +]ø
  3317.  
  3318.       PUSH EBX  ; 80000000h-to
  3319.  
  3320. 59D9C3  53 S
  3321.  
  3322.       ADD  EBX, EAX
  3323.  
  3324. 59D9C4  03 D8 .Ø
  3325.  
  3326.       PUSH EBX  ; 80000000H-to+from
  3327.  
  3328. 59D9C6  53 S
  3329.  
  3330.       MOV  EAX, [EBP-4]
  3331.  
  3332. 59D9C7  8B 45 FC ‹Eü
  3333.  
  3334.       RET
  3335.  
  3336. 59D9CA  C3 Ã
  3337.  
  3338. EndCode
  3339.  
  3340. Code ADD[ESP],EAX
  3341.  
  3342. 59D9CB  F0 D9 59 00  00 0C 41 44  44 5B 45 53  50 5D 2C 45 ðÙY...ADD[ESP],E
  3343. 59D9DB  41 58 99 D9  59 00 00 00  00 00 00 00  00 00 00 00 AX™ÙY...........
  3344. 59D9EB  00 00 00 00  00 .....
  3345.  
  3346.   ADD [ESP] , EAX
  3347.  
  3348. 59D9F0  01 04 24 ..$
  3349.  
  3350.  RET
  3351.  
  3352. 59D9F3  C3 Ã
  3353.  
  3354. EndCode
  3355.  
  3356. Code C-I
  3357.  
  3358. 59D9F4  10 DA 59 00  00 03 43 2D  49 D0 D9 59  00 00 00 00 .ÚY...C-IÐÙY....
  3359. 59DA04  00 00 00 00  00 00 00 00  00 00 00 00 ............
  3360.  
  3361.    LEA EBP, [EBP-4]
  3362.  
  3363. 59DA10  8D 6D FC mü
  3364.  
  3365.    MOV  [EBP], EAX
  3366.  
  3367. 59DA13  89 45 00 ‰E.
  3368.  
  3369.    MOV  EAX, DWORD PTR [ESP]
  3370.  
  3371. 59DA16  8B 04 24 ‹.$
  3372.  
  3373.    SUB  EAX, [ESP+4]
  3374.  
  3375. 59DA19  2B 44 24 04 +D$.
  3376.  
  3377.    RET
  3378.  
  3379. 59DA1D  C3 Ã
  3380.  
  3381. EndCode
  3382.  
  3383. Code C->R
  3384.  
  3385. 59DA1E  30 DA 59 00  00 04 43 2D  3E 52 F9 D9  59 00 00 00 0ÚY...C->RùÙY...
  3386. 59DA2E  00 00 ..
  3387.  
  3388.      PUSH EAX
  3389.  
  3390. 59DA30  50 P
  3391.  
  3392.      MOV  EAX, [EBP]
  3393.  
  3394. 59DA31  8B 45 00 ‹E.
  3395.  
  3396.      LEA  EBP, [EBP+4]
  3397.  
  3398. 59DA34  8D 6D 04 m.
  3399.  
  3400.      RET
  3401.  
  3402. 59DA37  C3 Ã
  3403.  
  3404. EndCode
  3405.  
  3406. Code C-R>
  3407.  
  3408. 59DA38  50 DA 59 00  00 04 43 2D  52 3E 23 DA  59 00 00 00 PÚY...C-R>#ÚY...
  3409. 59DA48  00 00 00 00  00 00 00 00 ........
  3410.  
  3411.      LEA  EBP, [EBP-4]
  3412.  
  3413. 59DA50  8D 6D FC mü
  3414.  
  3415.      MOV  [EBP], EAX
  3416.  
  3417. 59DA53  89 45 00 ‰E.
  3418.  
  3419.      POP EAX
  3420.  
  3421. 59DA56  58 X
  3422.  
  3423.      RET
  3424.  
  3425. 59DA57  C3 Ã
  3426.  
  3427. EndCode
  3428.  
  3429. Code C-RDROP
  3430.  
  3431. 59DA58  70 DA 59 00  00 07 43 2D  52 44 52 4F  50 3D DA 59 pÚY...C-RDROP=ÚY
  3432. 59DA68  00 00 00 00  00 00 00 00 ........
  3433.  
  3434.      ADD  ESP, 4
  3435.  
  3436. 59DA70  83 C4 04 ƒÄ.
  3437.  
  3438.      RET
  3439.  
  3440. 59DA73  C3 Ã
  3441.  
  3442. EndCode
  3443.  
  3444. Code C-2RDROP
  3445.  
  3446. 59DA74  90 DA 59 00  00 08 43 2D  32 52 44 52  4F 50 5D DA ÚY...C-2RDROP]Ú
  3447. 59DA84  59 00 00 00  00 00 00 00  00 00 00 00 Y...........
  3448.  
  3449.      ADD  ESP, 8
  3450.  
  3451. 59DA90  83 C4 08 ƒÄ.
  3452.  
  3453.      RET
  3454.  
  3455. 59DA93  C3 Ã
  3456.  
  3457. EndCode
  3458.  
  3459. Code C-3RDROP
  3460.  
  3461. 59DA94  B0 DA 59 00  00 08 43 2D  33 52 44 52  4F 50 79 DA °ÚY...C-3RDROPyÚ
  3462. 59DAA4  59 00 00 00  00 00 00 00  00 00 00 00 Y...........
  3463.  
  3464.      ADD  ESP, 0CH
  3465.  
  3466. 59DAB0  83 C4 0C ƒÄ.
  3467.  
  3468.      RET
  3469.  
  3470. 59DAB3  C3 Ã
  3471.  
  3472. EndCode
  3473.  
  3474. TRUE [IF]
  3475. Code C-EXECUTE ;( i*x xt -- j*x ) \ 94
  3476.  
  3477. 59DAB4  D0 DA 59 00  00 09 43 2D  45 58 45 43  55 54 45 99 ÐÚY...C-EXECUTE™
  3478. 59DAC4  DA 59 00 00  00 00 00 00  00 00 00 00 ÚY..........
  3479.  
  3480. ; “¡à âì xt á® á⥪  ¨ ¢ë¯®«­¨âì § ¤ ­­ãî ¨¬ ᥬ ­â¨ªã.
  3481. ; „à㣨¥ ¨§¬¥­¥­¨ï ­  á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«­ï¥âáï.
  3482.      MOV  EDX, EAX
  3483.  
  3484. 59DAD0  8B D0 ‹Ð
  3485.  
  3486.      MOV  EAX, [EBP]
  3487.  
  3488. 59DAD2  8B 45 00 ‹E.
  3489.  
  3490.      LEA  EBP, [EBP+4]
  3491.  
  3492. 59DAD5  8D 6D 04 m.
  3493.  
  3494.      CALL EDX
  3495.  
  3496. 59DAD8  FF D2 ÿÒ
  3497.  
  3498.      RET
  3499.  
  3500. 59DADA  C3 Ã
  3501.  
  3502. EndCode
  3503. [THEN]
  3504.  
  3505. Code EXECUTE ;( i*x xt -- j*x ) \ 94
  3506.  
  3507. 59DADB  F0 DA 59 00  00 07 45 58  45 43 55 54  45 B9 DA 59 ðÚY...EXECUTE¹ÚY
  3508. 59DAEB  00 00 00 00  00 .....
  3509.  
  3510. ; “¡à âì xt á® á⥪  ¨ ¢ë¯®«­¨âì § ¤ ­­ãî ¨¬ ᥬ ­â¨ªã.
  3511. ; „à㣨¥ ¨§¬¥­¥­¨ï ­  á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«­ï¥âáï.
  3512.      MOV EBX, EAX
  3513.  
  3514. 59DAF0  8B D8 ‹Ø
  3515.  
  3516.      MOV EAX, [EBP]
  3517.  
  3518. 59DAF2  8B 45 00 ‹E.
  3519.  
  3520.      LEA EBP, [EBP+4]
  3521.  
  3522. 59DAF5  8D 6D 04 m.
  3523.  
  3524.      JMP EBX
  3525.  
  3526. 59DAF8  FF E3 ÿã
  3527.  
  3528. EndCode
  3529.  
  3530. Code @EXECUTE ;( i*x xt -- j*x )
  3531.  
  3532. 59DAFA  10 DB 59 00  00 08 40 45  58 45 43 55  54 45 E0 DA .ÛY...@EXECUTEàÚ
  3533. 59DB0A  59 00 00 00  00 00 Y.....
  3534.  
  3535.      MOV EBX, EAX
  3536.  
  3537. 59DB10  8B D8 ‹Ø
  3538.  
  3539.      MOV EAX, [EBP]
  3540.  
  3541. 59DB12  8B 45 00 ‹E.
  3542.  
  3543.      LEA EBP, [EBP+4]
  3544.  
  3545. 59DB15  8D 6D 04 m.
  3546.  
  3547.      JMP [EBX]
  3548.  
  3549. 59DB18  FF 23 ÿ#
  3550.  
  3551. EndCode
  3552.  
  3553. \ ================================================================
  3554. \ ®¤¤¥à¦ª  LOCALS
  3555.  
  3556. Code DRMOVE ;( x1 ... xn n*4 -- )
  3557.  
  3558. 59DB1A  30 DB 59 00  00 06 44 52  4D 4F 56 45  FF DA 59 00 0ÛY...DRMOVEÿÚY.
  3559. 59DB2A  00 00 00 00  00 00 ......
  3560.  
  3561. ; ¯¥à¥­¥á⨠n ç¨á¥« á® á⥪  ¤ ­­ëå ­  á⥪ ¢®§¢à â®¢
  3562.      POP  EDX ;  ¤à¥á ¢®§¢à â 
  3563.  
  3564. 59DB30  5A Z
  3565.  
  3566.      MOV  ESI, EAX
  3567.  
  3568. 59DB31  8B F0 ‹ð
  3569.  
  3570. @@1:
  3571.      PUSH DWORD PTR [EBP+ESI-4]
  3572.  
  3573. 59DB33  FF 74 2E FC ÿt.ü
  3574.  
  3575.      SUB  ESI, 4
  3576.  
  3577. 59DB37  83 EE 04 ƒî.
  3578.  
  3579.      JNZ  SHORT @@1
  3580.  
  3581. 59DB3A  75 F7 u÷
  3582.  
  3583.      ADD  EBP, EAX
  3584.  
  3585. 59DB3C  03 E8 .è
  3586.  
  3587.      MOV  EAX, [EBP]
  3588.  
  3589. 59DB3E  8B 45 00 ‹E.
  3590.  
  3591.      LEA  EBP, [EBP+4]
  3592.  
  3593. 59DB41  8D 6D 04 m.
  3594.  
  3595.      JMP  EDX
  3596.  
  3597. 59DB44  FF E2 ÿâ
  3598.  
  3599. EndCode
  3600.  
  3601. Code NR> ;( R: x1 ... xn n -- D: x1 ... xn n )
  3602.  
  3603. 59DB46  60 DB 59 00  00 03 4E 52  3E 1F DB 59  00 00 00 00 `ÛY...NR>.ÛY....
  3604. 59DB56  00 00 00 00  00 00 00 00  00 00 ..........
  3605.  
  3606. ; ¥à¥­¥á⨠n ç¨á¥« á® á⥪  ¢®§¢à â®¢ ­  á⥪ ¤ ­­ëå
  3607. ; …᫨ n=0 ¢®§¢à â¨âì 0
  3608.      POP  EDX ;  ¤à¥á ¢®§¢à â 
  3609.  
  3610. 59DB60  5A Z
  3611.  
  3612.      LEA  EBP, [EBP-4]
  3613.  
  3614. 59DB61  8D 6D FC mü
  3615.  
  3616.      MOV  [EBP], EAX
  3617.  
  3618. 59DB64  89 45 00 ‰E.
  3619.  
  3620.      POP  EAX
  3621.  
  3622. 59DB67  58 X
  3623.  
  3624.      OR   EAX, EAX
  3625.  
  3626. 59DB68  0B C0 .À
  3627.  
  3628.      JNZ  @@2
  3629.  
  3630. 59DB6A  0F 85 02 00  00 00 .…....
  3631.  
  3632.      JMP  EDX
  3633.  
  3634. 59DB70  FF E2 ÿâ
  3635.  
  3636.  
  3637. @@2: LEA  EAX, [EAX*4]
  3638.  
  3639. 59DB72  8D 04 85 00  00 00 00 .…....
  3640.  
  3641.      MOV  ESI, EAX
  3642.  
  3643. 59DB79  8B F0 ‹ð
  3644.  
  3645. @@1:
  3646.      MOV  EBX, EBP
  3647.  
  3648. 59DB7B  8B DD ‹Ý
  3649.  
  3650.      SUB  EBX, ESI
  3651.  
  3652. 59DB7D  2B DE +Þ
  3653.  
  3654.      POP  DWORD PTR [EBX]
  3655.  
  3656. 59DB7F  8F 03 .
  3657.  
  3658.      SUB  ESI,  4
  3659.  
  3660. 59DB81  83 EE 04 ƒî.
  3661.  
  3662.      JNZ  SHORT @@1
  3663.  
  3664. 59DB84  75 F5 uõ
  3665.  
  3666.      SUB  EBP, EAX
  3667.  
  3668. 59DB86  2B E8 +è
  3669.  
  3670.      SAR  EAX,  2
  3671.  
  3672. 59DB88  C1 F8 02 Áø.
  3673.  
  3674.      JMP  EDX
  3675.  
  3676. 59DB8B  FF E2 ÿâ
  3677.  
  3678. EndCode
  3679.  
  3680. Code N>R ;( D: x1 ... xn n -- R: x1 ... xn n )
  3681.  
  3682. 59DB8D  A0 DB 59 00  00 03 4E 3E  52 4B DB 59  00 00 00 00  ÛY...N>RKÛY....
  3683. 59DB9D  00 00 00 ...
  3684.  
  3685. ; ¯¥à¥­¥á⨠n ç¨á¥« á® á⥪  ¤ ­­ëå ­  á⥪ ¢®§¢à â®¢
  3686.      LEA  EBP, [EBP-4]
  3687.  
  3688. 59DBA0  8D 6D FC mü
  3689.  
  3690.      MOV  [EBP], EAX
  3691.  
  3692. 59DBA3  89 45 00 ‰E.
  3693.  
  3694.      LEA EAX, [EAX*4+4]
  3695.  
  3696. 59DBA6  8D 04 85 04  00 00 00 .…....
  3697.  
  3698.  
  3699.      POP  EDX ;  ¤à¥á ¢®§¢à â 
  3700.  
  3701. 59DBAD  5A Z
  3702.  
  3703.      MOV  ESI, EAX
  3704.  
  3705. 59DBAE  8B F0 ‹ð
  3706.  
  3707. @@1:
  3708.      PUSH DWORD PTR [EBP+ESI-4]
  3709.  
  3710. 59DBB0  FF 74 2E FC ÿt.ü
  3711.  
  3712.      SUB  ESI,  4
  3713.  
  3714. 59DBB4  83 EE 04 ƒî.
  3715.  
  3716.      JNZ  SHORT @@1
  3717.  
  3718. 59DBB7  75 F7 u÷
  3719.  
  3720.      ADD  EBP, EAX
  3721.  
  3722. 59DBB9  03 E8 .è
  3723.  
  3724.      MOV  EAX, [EBP]
  3725.  
  3726. 59DBBB  8B 45 00 ‹E.
  3727.  
  3728.      LEA  EBP, [EBP+4]
  3729.  
  3730. 59DBBE  8D 6D 04 m.
  3731.  
  3732.      JMP  EDX
  3733.  
  3734. 59DBC1  FF E2 ÿâ
  3735.  
  3736. EndCode
  3737.  
  3738. Code NRCOPY ;( D: i*x i -- D: i*x i R: i*x i )
  3739.  
  3740. 59DBC3  E0 DB 59 00  00 06 4E 52  43 4F 50 59  92 DB 59 00 àÛY...NRCOPY’ÛY.
  3741. 59DBD3  00 00 00 00  00 00 00 00  00 00 00 00  00 .............
  3742.  
  3743. ; ᪮¯¨à®¢ âì n ç¨á¥« á® á⥪  ¤ ­­ëå ­  á⥪ ¢®§¢à â®¢
  3744.      MOV  ECX, EAX
  3745.  
  3746. 59DBE0  8B C8 ‹È
  3747.  
  3748.      LEA  ECX, [ECX*4]
  3749.  
  3750. 59DBE2  8D 0C 8D 00  00 00 00 .....
  3751.  
  3752.  
  3753.      POP  EDX ;  ¤à¥á ¢®§¢à â 
  3754.  
  3755. 59DBE9  5A Z
  3756.  
  3757.      JECXZ @@2
  3758.  
  3759. 59DBEA  E3 0B ã.
  3760.  
  3761.      MOV  ESI, ECX
  3762.  
  3763. 59DBEC  8B F1 ‹ñ
  3764.  
  3765. @@1:
  3766.      PUSH DWORD PTR [ESI+EBP-4]
  3767.  
  3768. 59DBEE  FF 74 35 FC ÿt5ü
  3769.  
  3770.      SUB  ESI,  4
  3771.  
  3772. 59DBF2  83 EE 04 ƒî.
  3773.  
  3774.      JNZ  SHORT @@1
  3775.  
  3776. 59DBF5  75 F7 u÷
  3777.  
  3778. @@2:
  3779.      PUSH EAX
  3780.  
  3781. 59DBF7  50 P
  3782.  
  3783.      JMP  EDX
  3784.  
  3785. 59DBF8  FF E2 ÿâ
  3786.  
  3787. EndCode
  3788.  
  3789. Code RP+@ ;( offs -- x )
  3790.  
  3791. 59DBFA  10 DC 59 00  00 04 52 50  2B 40 C8 DB  59 00 00 00 .ÜY...RP+@ÈÛY...
  3792. 59DC0A  00 00 00 00  00 00 ......
  3793.  
  3794. ; ¢§ïâì ç¨á«® ᮠᬥ饭¨¥¬ offs ¡ ©â ®â ¢¥à設ë á⥪  ¢®§¢à â®¢ (0 RP+@ == RP@)
  3795.      MOV EAX, [EAX+ESP+4]
  3796.  
  3797. 59DC10  8B 44 04 04 ‹D..
  3798.  
  3799.      RET
  3800.  
  3801. 59DC14  C3 Ã
  3802.  
  3803. EndCode
  3804.      
  3805. Code RP+ ;( offs -- addr )
  3806.  
  3807. 59DC15  30 DC 59 00  00 03 52 50  2B FF DB 59  00 00 00 00 0ÜY...RP+ÿÛY....
  3808. 59DC25  00 00 00 00  00 00 00 00  00 00 00 ...........
  3809.  
  3810. ; ¢§ïâì  ¤à¥á ᮠᬥ饭¨¥¬ offs ¡ ©â ®â ¢¥à設ë á⥪  ¢®§¢à â®¢
  3811.         LEA EAX, [EAX+ESP+4]
  3812.  
  3813. 59DC30  8D 44 04 04 D..
  3814.  
  3815.         RET
  3816.  
  3817. 59DC34  C3 Ã
  3818.  
  3819. EndCode
  3820.  
  3821. Code RP+! ;( x offs -- )
  3822.  
  3823. 59DC35  50 DC 59 00  00 04 52 50  2B 21 1A DC  59 00 00 00 PÜY...RP+!.ÜY...
  3824. 59DC45  00 00 00 00  00 00 00 00  00 00 00 ...........
  3825.  
  3826. ; § ¯¨á âì ç¨á«® x ¯® ᬥ饭¨î offs ¡ ©â ®â ¢¥à設ë á⥪  ¢®§¢à â®¢
  3827.         MOV  EBX, [EBP]
  3828.  
  3829. 59DC50  8B 5D 00 ‹].
  3830.  
  3831.         MOV  [EAX+ESP+4], EBX
  3832.  
  3833. 59DC53  89 5C 04 04 ‰\..
  3834.  
  3835.         LEA  EBP, [EBP+8]
  3836.  
  3837. 59DC57  8D 6D 08 m.
  3838.  
  3839.         MOV  EAX, [EBP-4]
  3840.  
  3841. 59DC5A  8B 45 FC ‹Eü
  3842.  
  3843.         RET
  3844.  
  3845. 59DC5D  C3 Ã
  3846.  
  3847. EndCode
  3848.  
  3849. Code RALLOT ;( n -- addr )
  3850.  
  3851. 59DC5E  70 DC 59 00  00 06 52 41  4C 4C 4F 54  3A DC 59 00 pÜY...RALLOT:ÜY.
  3852. 59DC6E  00 00 ..
  3853.  
  3854. ; § à¥§¥à¢¨à®¢ âì n ï祥ª ­  á⥪¥ ¢®§¢à â®¢,
  3855. ; ᤥ« ¥¬ á ¨­¨æ¨ «¨§ æ¨¥© (  â® ¥á«¨ ¡®«ìè¥ 8Š ¢ë¤¥«¨¬, exception ¬®¦¥â)
  3856.      POP  EDX
  3857.  
  3858. 59DC70  5A Z
  3859.  
  3860.      MOV  ECX, EAX
  3861.  
  3862. 59DC71  8B C8 ‹È
  3863.  
  3864.      XOR  EAX, EAX
  3865.  
  3866. 59DC73  33 C0 3À
  3867.  
  3868. @@1: PUSH EAX
  3869.  
  3870. 59DC75  50 P
  3871.  
  3872.      DEC  ECX
  3873.  
  3874. 59DC76  49 I
  3875.  
  3876.      JNZ  SHORT @@1
  3877.  
  3878. 59DC77  75 FC uü
  3879.  
  3880.      MOV  EAX, ESP
  3881.  
  3882. 59DC79  8B C4 ‹Ä
  3883.  
  3884.      JMP  EDX
  3885.  
  3886. 59DC7B  FF E2 ÿâ
  3887.  
  3888. EndCode
  3889.  
  3890. Code (RALLOT) ;( n -- )
  3891.  
  3892. 59DC7D  90 DC 59 00  00 08 28 52  41 4C 4C 4F  54 29 63 DC ÜY...(RALLOT)cÜ
  3893. 59DC8D  59 00 00 Y..
  3894.  
  3895. ; § à¥§¥à¢¨à®¢ âì n ï祥ª ­  á⥪¥ ¢®§¢à â®¢
  3896.      POP  EDX
  3897.  
  3898. 59DC90  5A Z
  3899.  
  3900.      MOV  ECX, EAX
  3901.  
  3902. 59DC91  8B C8 ‹È
  3903.  
  3904.      XOR  EAX, EAX
  3905.  
  3906. 59DC93  33 C0 3À
  3907.  
  3908. @@1: PUSH EAX
  3909.  
  3910. 59DC95  50 P
  3911.  
  3912.      DEC  ECX
  3913.  
  3914. 59DC96  49 I
  3915.  
  3916.      JNZ  SHORT @@1
  3917.  
  3918. 59DC97  75 FC uü
  3919.  
  3920.      MOV  EAX, [EBP]
  3921.  
  3922. 59DC99  8B 45 00 ‹E.
  3923.  
  3924.      LEA  EBP, [EBP+4]
  3925.  
  3926. 59DC9C  8D 6D 04 m.
  3927.  
  3928.      JMP  EDX
  3929.  
  3930. 59DC9F  FF E2 ÿâ
  3931.  
  3932. EndCode
  3933.  
  3934. Code RFREE ;( n -- )
  3935.  
  3936. 59DCA1  B0 DC 59 00  00 05 52 46  52 45 45 82  DC 59 00 °ÜY...RFREE‚ÜY.
  3937.  
  3938. ; ¢¥à­ãâì n ï祥ª á⥪  ¢®§¢à â®¢
  3939.      POP  EDX
  3940.  
  3941. 59DCB0  5A Z
  3942.  
  3943.      LEA  ESP, [ESP+EAX*4]
  3944.  
  3945. 59DCB1  8D 24 84 $„
  3946.  
  3947.      MOV EAX, [EBP]
  3948.  
  3949. 59DCB4  8B 45 00 ‹E.
  3950.  
  3951.      LEA EBP, [EBP+4]
  3952.  
  3953. 59DCB7  8D 6D 04 m.
  3954.  
  3955.      JMP  EDX
  3956.  
  3957. 59DCBA  FF E2 ÿâ
  3958.  
  3959. EndCode
  3960.  
  3961. Code (LocalsExit) ;( -- )
  3962.  
  3963. 59DCBC  E0 DC 59 00  00 0C 28 4C  6F 63 61 6C  73 45 78 69 àÜY...(LocalsExi
  3964. 59DCCC  74 29 A6 DC  59 00 00 00  00 00 00 00  00 00 00 00 t)¦ÜY...........
  3965. 59DCDC  00 00 00 00 ....
  3966.  
  3967. ; ¢¥à­ãâì ¯ ¬ïâì ¢ á⥪ ¢®¢à â®¢, ç¨á«® ¡ ©â «¥¦¨â ­  á⥪¥
  3968.      POP  EBX
  3969.  
  3970. 59DCE0  5B [
  3971.  
  3972.      ADD  ESP, EBX
  3973.  
  3974. 59DCE1  03 E3 .ã
  3975.  
  3976.      RET
  3977.  
  3978. 59DCE3  C3 Ã
  3979.  
  3980. EndCode
  3981.  
  3982. Code TIMER@ ;( -- tlo thi ) \ ’®«ìª® ¤«ï Intel Pentium ¨ ¢ëè¥!!!
  3983.  
  3984. 59DCE4  00 DD 59 00  00 06 54 49  4D 45 52 40  C1 DC 59 00 .ÝY...TIMER@ÁÜY.
  3985. 59DCF4  00 00 00 00  00 00 00 00  00 00 00 00 ............
  3986.  
  3987. ; ‚®§¢à â¨âì §­ ç¥­¨¥ â ©¬¥à  ¯à®æ¥áá®à  ª ª ud
  3988.    MOV [EBP-4], EAX
  3989.  
  3990. 59DD00  89 45 FC ‰Eü
  3991.  
  3992.    RDTSC
  3993.  
  3994. 59DD03  0F 31 .1
  3995.  
  3996.    MOV [EBP-8], EDX
  3997.  
  3998. 59DD05  89 55 F8 ‰Uø
  3999.  
  4000.    LEA EBP,  [EBP-8]
  4001.  
  4002. 59DD08  8D 6D F8 mø
  4003.  
  4004.    XCHG EAX, [EBP]
  4005.  
  4006. 59DD0B  87 45 00 ‡E.
  4007.  
  4008.    RET
  4009.  
  4010. 59DD0E  C3 Ã
  4011.  
  4012. EndCode
  4013.  
  4014. \ „«ï ®áâ «ì­ëå ¯à®æ¥áá®à®¢ à áª®¬¬¥­â¨àã©â¥:
  4015. \ : TIMER@ 0 GetTickCount ;
  4016.  
  4017. Code TRAP-CODE ;( D: j*x u R: i*x i -- i*x u )
  4018.  
  4019. 59DD0F  30 DD 59 00  00 09 54 52  41 50 2D 43  4F 44 45 E9 0ÝY...TRAP-CODEé
  4020. 59DD1F  DC 59 00 00  00 00 00 00  00 00 00 00  00 00 00 00 ÜY..............
  4021. 59DD2F  00 .
  4022.  
  4023. ; ‚ᯮ¬®£ â¥«ì­®¥ á«®¢® ¤«ï ¢®ááâ ­®¢«¥­¨ï §­ ç¥­¨©, á®åà ­¥­­ëå
  4024. ; ¯¥à¥¤ CATCH ­  á⥪¥ ¢®§¢à â®¢
  4025.      POP  EDX
  4026.  
  4027. 59DD30  5A Z
  4028.  
  4029.      POP  ESI
  4030.  
  4031. 59DD31  5E ^
  4032.  
  4033.      OR   ESI, ESI
  4034.  
  4035. 59DD32  0B F6 .ö
  4036.  
  4037.      JZ   @@2
  4038.  
  4039. 59DD34  0F 84 18 00  00 00 .„....
  4040.  
  4041.      LEA  ESI, [ESI*4]
  4042.  
  4043. 59DD3A  8D 34 B5 00  00 00 00 4µ....
  4044.  
  4045.      MOV  ECX, ESI
  4046.  
  4047. 59DD41  8B CE ‹Î
  4048.  
  4049. @@1: MOV  EBX, [ESI+ESP-4]
  4050.  
  4051. 59DD43  8B 5C 34 FC ‹\4ü
  4052.  
  4053.      MOV  [ESI+EBP-4], EBX
  4054.  
  4055. 59DD47  89 5C 35 FC ‰\5ü
  4056.  
  4057.      SUB  ESI, 4
  4058.  
  4059. 59DD4B  83 EE 04 ƒî.
  4060.  
  4061.      JNZ  SHORT @@1
  4062.  
  4063. 59DD4E  75 F3 uó
  4064.  
  4065.      ADD  ESP, ECX
  4066.  
  4067. 59DD50  03 E1 .á
  4068.  
  4069. @@2: JMP  EDX
  4070.  
  4071. 59DD52  FF E2 ÿâ
  4072.  
  4073. EndCode
  4074.  
  4075. DECIMAL
  4076. ZZ=D0