forked from KolibriOS/kolibrios
1385 lines
31 KiB
FortranFixed
1385 lines
31 KiB
FortranFixed
|
( <20>᭮<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|||
|
Copyright [C] 1992-1999 A.Cherezov ac@forth.org
|
|||
|
<20>८<EFBFBD>ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 16-ࠧ<EFBFBD>來<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> 32-ࠧ<EFBFBD>來<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> - 1995-96<EFBFBD><EFBFBD>
|
|||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - ᥭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1999
|
|||
|
)
|
|||
|
|
|||
|
( <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ணࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⮣<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
ESP - 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
EBP - 㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
EDI - <EFBFBD><EFBFBD><EFBFBD>࠭塞<EFBFBD><EFBFBD> ॣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> [㪠<EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⮪<EFBFBD> <EFBFBD> SPF]
|
|||
|
)
|
|||
|
|
|||
|
HEX
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20>⥪<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨
|
|||
|
|
|||
|
?HS
|
|||
|
|
|||
|
Code DUP ;( x -- x x ) \ 94
|
|||
|
; <20>த㡫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> x.
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
mov [ebp],eax
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
|
|||
|
\ ' DUP TO 'DUP_V
|
|||
|
|
|||
|
Code ?DUP ;( x -- 0 | x x ) \ 94
|
|||
|
; <20>த㡫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> x, <EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
OR EAX, EAX
|
|||
|
JNZ { ' DUP }
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2DUP ;( x1 x2 -- x1 x2 x1 x2 ) \ 94
|
|||
|
; <20>த㡫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2.
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV [EBP-4], EAX
|
|||
|
MOV [EBP-8], EDX
|
|||
|
LEA EBP, [EBP-8]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code DROP ;( x -- ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD>.
|
|||
|
mov eax,[ebp]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ' DROP TO 'DROP_V
|
|||
|
|
|||
|
Code MAX ;( n1 n2 -- n3 ) \ 94
|
|||
|
; n3 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>襥 <EFBFBD><EFBFBD> n1 <EFBFBD> n2.
|
|||
|
CMP EAX, [EBP]
|
|||
|
JL { ' DROP }
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code MIN ;( n1 n2 -- n3 ) \ 94
|
|||
|
; n3 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>襥 <EFBFBD><EFBFBD> n1 <EFBFBD> n2.
|
|||
|
CMP EAX, [EBP]
|
|||
|
JG { ' DROP }
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code UMAX ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and
|
|||
|
; unsigned u2
|
|||
|
CMP EAX, [EBP]
|
|||
|
JB { ' DROP }
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code UMIN ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and
|
|||
|
; unsigned u2
|
|||
|
CMP EAX, [EBP]
|
|||
|
JA { ' DROP }
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2DROP ;( x1 x2 -- ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2.
|
|||
|
MOV EAX , [EBP+4]
|
|||
|
ADD EBP , 8
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code SWAP ;( x1 x2 -- x2 x1 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⠬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD>
|
|||
|
; XCHG EAX { EBP }
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2SWAP ;( x1 x2 x3 x4 -- x3 x4 x1 x2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⠬<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD>.
|
|||
|
MOV ECX, [EBP]
|
|||
|
MOV EBX, [EBP+4]
|
|||
|
MOV EDX, [EBP+8]
|
|||
|
MOV [EBP+8], ECX
|
|||
|
MOV [EBP+4], EAX
|
|||
|
MOV [EBP], EDX
|
|||
|
MOV EAX, EBX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code OVER ;( x1 x2 -- x1 x2 x1 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> <EFBFBD>⥪<EFBFBD>.
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2OVER ;( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> <EFBFBD>⥪<EFBFBD>.
|
|||
|
MOV EDX, [EBP+8]
|
|||
|
MOV [EBP-4], EAX
|
|||
|
MOV [EBP-8], EDX
|
|||
|
MOV EAX, [EBP+4]
|
|||
|
LEA EBP, [EBP-8]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code NIP ;( x1 x2 -- x2 ) \ 94 CORE EXT
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD>.
|
|||
|
ADD EBP, 4
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code ROT ;( x1 x2 x3 -- x2 x3 x1 ) \ 94
|
|||
|
; <20>ப<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>孨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD>.
|
|||
|
; XCHG EAX [EBP]
|
|||
|
; XCHG EAX 4 [EBP]
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, [EBP+4]
|
|||
|
MOV [EBP+4], EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
|
|||
|
Code -ROT ;( x1 x2 x3 -- x3 x1 x2 ) ; !!!!!
|
|||
|
; <20><><EFBFBD><EFBFBD>⭮<EFBFBD> ROT
|
|||
|
MOV EDX, [EBP+4]
|
|||
|
MOV [EBP+4], EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
MOV [EBP], EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code PICK ;( ... +n -- ... w ) \ Copy the nth stack item to tos.
|
|||
|
MOV EAX, [EBP + EAX*4 ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code ROLL ;( xu xu-1 ... x0 u -- xu-1 ... x0 xu ) \ 94 CORE EXT
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u+1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> <EFBFBD>⥪<EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD>। <EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ROLL
|
|||
|
; <20><> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 祬 u+2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢.
|
|||
|
OR EAX, EAX
|
|||
|
JZ SHORT LL1
|
|||
|
MOV ECX, EAX
|
|||
|
LEA EAX, [EAX*4]
|
|||
|
MOV EDX, EBP
|
|||
|
ADD EDX, EAX
|
|||
|
MOV EBX, [EDX]
|
|||
|
LL2: LEA EDX, [EDX-4]
|
|||
|
MOV EAX, [EDX]
|
|||
|
MOV [EDX+4], EAX
|
|||
|
DEC ECX
|
|||
|
JNZ SHORT LL2
|
|||
|
MOV EAX, EBX
|
|||
|
JMP SHORT LL3
|
|||
|
LL1: MOV EAX, [EBP]
|
|||
|
LL3: LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code TUCK ;( x1 x2 -- x2 x1 x2 ) \ 94
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV EDX, [EBP+4]
|
|||
|
MOV [EBP], EDX
|
|||
|
MOV [EBP+4], EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20>⥪ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
|
|||
|
Code 2>R ; 94 CORE EXT
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ᥬ<EFBFBD><EFBFBD>⨪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ;( x1 x2 -- ) ;( R: -- x1 x2 )
|
|||
|
; <20><>७<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2 <EFBFBD><EFBFBD> <EFBFBD>⥪ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮ SWAP >R >R.
|
|||
|
POP EBX
|
|||
|
PUSH DWORD PTR [EBP]
|
|||
|
PUSH EAX
|
|||
|
LEA EBP, [EBP+8]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
JMP EBX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2R> ; 94 CORE EXT
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ᥬ<EFBFBD><EFBFBD>⨪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ;( -- x1 x2 ) ;( R: x1 x2 -- )
|
|||
|
; <20><>७<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2 <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮ R> R> SWAP. \ !!!!
|
|||
|
LEA EBP, [EBP-8]
|
|||
|
POP EBX
|
|||
|
MOV [EBP+4], EAX
|
|||
|
POP EAX
|
|||
|
POP DWORD PTR [EBP]
|
|||
|
PUSH EBX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code R@ ; 94
|
|||
|
; <20>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ;( -- x ) ;( R: x -- x )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ᥬ<EFBFBD><EFBFBD>⨪<EFBFBD> <EFBFBD> ०<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, [ESP + 4 ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2R@ ; 94 CORE EXT
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ᥬ<EFBFBD><EFBFBD>⨪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ;( -- x1 x2 ) ;( R: x1 x2 -- x1 x2 )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2 <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪨
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮ R> R> 2DUP >R >R SWAP.
|
|||
|
LEA EBP, [EBP-8]
|
|||
|
MOV [EBP+4], EAX
|
|||
|
MOV EAX, [ESP + { 2 CELLS } ]
|
|||
|
MOV DWORD PTR [EBP], EAX
|
|||
|
MOV EAX, [ESP + 4 ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20><><EFBFBD><EFBFBD><EFBFBD>樨 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Code @ ;( a-addr -- x ) \ 94
|
|||
|
; x - <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr.
|
|||
|
MOV EAX, [EAX ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code ! ;( x a-addr -- ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr.
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV DWORD PTR [EAX ], EDX
|
|||
|
MOV EAX , [EBP+4]
|
|||
|
ADD EBP , 8
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C@ ;( c-addr -- char ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>訥 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祩<EFBFBD><EFBFBD> <EFBFBD>㫥<EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MOVZX EAX, BYTE PTR [EAX ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C! ;( char c-addr -- ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr.
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV BYTE PTR [EAX ], DL
|
|||
|
MOV EAX , [EBP+4]
|
|||
|
ADD EBP , 8
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code W@ ;( c-addr -- word )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> word <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騥 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>訥 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祩<EFBFBD><EFBFBD> <EFBFBD>㫥<EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MOVZX EAX, WORD PTR [EAX ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code W! ;( word c-addr -- )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> word <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr.
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV WORD PTR [EAX ], DX
|
|||
|
MOV EAX , [EBP+4]
|
|||
|
ADD EBP , 8
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2@ ;( a-addr -- x1 x2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᠭ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr.
|
|||
|
; x2 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr, x1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>饩 <EFBFBD>祩<EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>ᨫ쭮 DUP CELL+ @ SWAP @
|
|||
|
MOV EDX, [EAX + 4 ]
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV DWORD PTR [EBP], EDX
|
|||
|
MOV EAX, DWORD PTR [EAX ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2! ;( x1 x2 a-addr -- ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祥<EFBFBD> x1 x2 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr,
|
|||
|
; x2 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr, x1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祩<EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD>ᨫ쭮 SWAP OVER ! CELL+ !
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV [EAX], EDX
|
|||
|
MOV EDX, [EBP+4]
|
|||
|
MOV [EAX+4], EDX
|
|||
|
LEA EBP, [EBP+0CH]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D@ ;( a-addr -- x1 x2 )
|
|||
|
; 2@ SWAP
|
|||
|
MOV EDX, [EAX]
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV DWORD PTR [EBP], EDX
|
|||
|
MOV EAX, DWORD PTR [EAX+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D! ;( x1 x2 a-addr -- )
|
|||
|
; >R SWAP R> 2!
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV [EAX+4], EDX
|
|||
|
MOV EDX, [EBP+4]
|
|||
|
MOV [EAX], EDX
|
|||
|
LEA EBP, [EBP+0CH]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
|
|||
|
Code EBX@ ;( -- EBX )
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
mov [ebp],eax
|
|||
|
MOV EAX,EBX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Code 1+ ;( n1|u1 -- n2|u2 ) \ 94
|
|||
|
; <20>ਡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD> n1|u1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㬬<EFBFBD> u2|n2.
|
|||
|
LEA EAX, [EAX+1]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 1- ;( n1|u1 -- n2|u2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD> n1|u1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n2|u2.
|
|||
|
LEA EAX, [EAX-1]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2+ ;( W -> W+2 )
|
|||
|
LEA EAX, [EAX+2]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2- ;( W -> W-2 )
|
|||
|
LEA EAX, [EAX-2]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2* ;( x1 -- x2 ) \ 94
|
|||
|
; x2 - १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᤢ<EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>稬<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㫥<EFBFBD>.
|
|||
|
; SHL EAX
|
|||
|
; LEA EAX, [EAX+EAX]
|
|||
|
LEA EAX, [EAX*2]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code CELL+ ;( a-addr1 -- a-addr2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祩<EFBFBD><EFBFBD> <EFBFBD> a-addr1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr2.
|
|||
|
LEA EAX, [EAX+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code CELL- ;( a-addr1 -- a-addr2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>祩<EFBFBD><EFBFBD> <EFBFBD> a-addr1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr2.
|
|||
|
LEA EAX, [EAX-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code CELLS ;( n1 -- n2 ) \ 94
|
|||
|
; n2 - ࠧ<EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD>祥<EFBFBD>.
|
|||
|
LEA EAX, DWORD PTR [EAX *4 ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
|
|||
|
Code + ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1|u1 <EFBFBD> n2|u2 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㬬<EFBFBD> n3|u3.
|
|||
|
ADD EAX, DWORD PTR [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D+ ;( d1|ud1 d2|ud2 -- d3|ud3 ) \ 94 DOUBLE
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d1|ud1 <EFBFBD> d2|ud2 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㬬<EFBFBD> d3|ud3.
|
|||
|
MOV EDX, DWORD PTR [EBP]
|
|||
|
ADD DWORD PTR [EBP + { 2 CELLS } ], EDX
|
|||
|
ADC EAX, DWORD PTR [EBP +4 ]
|
|||
|
LEA EBP, [EBP+8]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D- ;( d1 d2 -- d3 ) \ 94 DOUBLE
|
|||
|
; perform a double subtract (64bit)
|
|||
|
MOV EDX, DWORD PTR [EBP]
|
|||
|
SUB DWORD PTR [EBP + { 2 CELLS } ], EDX
|
|||
|
SBB [EBP+4], EAX
|
|||
|
MOV EAX, DWORD PTR [EBP +4 ]
|
|||
|
LEA EBP, [EBP+8]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code - ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n2|u2 <EFBFBD><EFBFBD> n1|u1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n3|u3.
|
|||
|
NEG EAX
|
|||
|
ADD EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 1+! ;( A -> )
|
|||
|
INC DWORD PTR [EAX ]
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 0! ;( A -> )
|
|||
|
MOV DWORD PTR [EAX ], 0
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code COUNT ;( c-addr1 -- c-addr2 u ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>稪<EFBFBD><EFBFBD> c-addr1.
|
|||
|
; c-addr2 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࢮ<EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> c-addr1.
|
|||
|
; u - ᮤ<EFBFBD>ন<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr1, <EFBFBD><EFBFBD>饥<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
; <20><>稭<EFBFBD><EFBFBD>饩<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr2.
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
LEA EDX, DWORD PTR [EAX +1 ]
|
|||
|
MOV DWORD PTR [EBP], EDX
|
|||
|
MOVZX EAX, BYTE PTR [EAX ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code * ;( n1|u1 n2|u2 -- n3|u3 ) \ 94
|
|||
|
; <20><>६<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1|u1 <EFBFBD> n2|u2 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ந<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n3|u3.
|
|||
|
IMUL DWORD PTR [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code AND ;( x1 x2 -- x3 ) \ 94
|
|||
|
; x3 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><EFBFBD> "<22>" x1 <EFBFBD> x2.
|
|||
|
AND EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code OR ;( x1 x2 -- x3 ) \ 94
|
|||
|
; x3 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><EFBFBD> "<22><><EFBFBD>" x1 <EFBFBD> x2.
|
|||
|
OR EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code XOR ;( x1 x2 -- x3 ) \ 94
|
|||
|
; x3 - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢<EFBFBD><EFBFBD> "<22>᪫<EFBFBD><E1AAAB><EFBFBD><EFBFBD>饥 <20><><EFBFBD>" x1 <EFBFBD> x2.
|
|||
|
XOR EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code INVERT ;( x1 -- x2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x2.
|
|||
|
NOT EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code NEGATE ;( n1 -- n2 ) \ 94
|
|||
|
; n2 - <EFBFBD><EFBFBD><EFBFBD>䬥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>᪠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1.
|
|||
|
NEG EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code ABS ;( n -- u ) \ 94
|
|||
|
; u - <EFBFBD><EFBFBD>᮫<EFBFBD>⭠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>稭<EFBFBD> n.
|
|||
|
TEST EAX, EAX
|
|||
|
JS { ' NEGATE }
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code DNEGATE ;( d1 -- d2 ) \ 94 DOUBLE
|
|||
|
; d2 १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD> d1 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MOV EDX, [EBP]
|
|||
|
NEG EAX
|
|||
|
NEG EDX
|
|||
|
SBB EAX, 0
|
|||
|
MOV DWORD PTR [EBP], EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code NOOP ;( -> )
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code S>D ;( n -- d ) \ 94
|
|||
|
; <20>८<EFBFBD>ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> n <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> d <EFBFBD> ⥬ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
CDQ
|
|||
|
MOV EAX, EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D>S ;( d -- n ) \ 94 DOUBLE
|
|||
|
; n - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d.
|
|||
|
; <20>᪫<EFBFBD><EFBFBD><EFBFBD>⥫쭠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> d <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᥫ.
|
|||
|
MOV EAX, [EBP]
|
|||
|
ADD EBP, 4
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code U>D ;( U -> D ) \ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>筮<EFBFBD><E7ADAE><EFBFBD> <20>㫥<EFBFBD>
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
XOR EAX, EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C>S ;( c -- n ) \ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CHAR
|
|||
|
MOVSX EAX, AL
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code UM* ;( u1 u2 -- ud ) \ 94
|
|||
|
; ud - <EFBFBD>ந<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u1 <EFBFBD> u2. <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>䬥⨪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MUL DWORD PTR [EBP]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code / ;( n1 n2 -- n3 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD> n2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> n3.
|
|||
|
; <20>᪫<EFBFBD><EFBFBD><EFBFBD>⥫쭠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> n2 ࠢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20> n1 <EFBFBD> n2 ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
; ॠ<><E0A5A0><EFBFBD><EFBFBD>樨.
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
CDQ
|
|||
|
IDIV ECX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code U/ ;( W1, W2 -> W3 ) \ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> W1 <20><> W2
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
XOR EDX, EDX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
DIV ECX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code +! ;( n|u a-addr -- ) \ 94 \ !!!!!
|
|||
|
; <20>ਡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n|u <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>୮<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> a-addr.
|
|||
|
MOV EDX, [EBP]
|
|||
|
ADD DWORD PTR [EAX ], EDX
|
|||
|
MOV EAX, [EBP+4]
|
|||
|
LEA EBP, [EBP+8]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code MOD ;( n1 n2 -- n3 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD> n2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪ n3.
|
|||
|
; <20>᪫<EFBFBD><EFBFBD><EFBFBD>⥫쭠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> n2 ࠢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20> n1 <EFBFBD> n2 ࠧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
; ॠ<><E0A5A0><EFBFBD><EFBFBD>樨.
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
CDQ
|
|||
|
IDIV ECX
|
|||
|
MOV EAX, EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code /MOD ;( n1 n2 -- n3 n4 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD> n2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪ n3 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> n4.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> n2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
CDQ
|
|||
|
IDIV ECX
|
|||
|
MOV [EBP], EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code UMOD ;( W1, W2 -> W3 ) \ <20><><EFBFBD><EFBFBD>⮪ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> W1 <20><> W2
|
|||
|
MOV ECX, EAX
|
|||
|
XOR EDX, EDX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
DIV ECX
|
|||
|
MOV EAX, EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code UM/MOD ;( ud u1 -- u2 u3 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ud <EFBFBD><EFBFBD> u1, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> u3 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪ u2.
|
|||
|
; <20><><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>䬥⨪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20>᪫<EFBFBD><EFBFBD><EFBFBD>⥫쭠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> u1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD>
|
|||
|
; <20><>室<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᥫ.
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV EAX, [EBP+4]
|
|||
|
DIV ECX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
MOV [EBP], EDX
|
|||
|
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 2/ ;( x1 -- x2 ) \ 94
|
|||
|
; x2 - १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᤢ<EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠢ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>襣<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
SAR EAX,1
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code */MOD ;( n1 n2 n3 -- n4 n5 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD> n2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d <EFBFBD><EFBFBD> n3, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪ n4 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> n5.
|
|||
|
MOV EBX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
MOV ECX, [EBP+4]
|
|||
|
IMUL ECX
|
|||
|
IDIV EBX
|
|||
|
MOV [EBP+4], EDX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code M* ;( n1 n2 -- d ) \ 94
|
|||
|
; d - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> १<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㬭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD> n2.
|
|||
|
IMUL DWORD PTR [EBP]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code LSHIFT ;( x1 u -- x2 ) ; 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD><EFBFBD> u <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㫨 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>稬<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
; <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ᤢ<EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> u <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ࠢ<EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>祩<EFBFBD><EFBFBD>.
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
SHL EAX, CL
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RSHIFT ;( x1 u -- x2 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD><EFBFBD> u <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࠢ<EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>㫨 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>稬<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
|||
|
; <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ᤢ<EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> u <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ࠢ<EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>祩<EFBFBD><EFBFBD>.
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
SHR EAX, CL
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code SM/REM ;( d1 n1 -- n2 n3 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d1 <EFBFBD><EFBFBD> n1, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> n3 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪ n2.
|
|||
|
; <20>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>室<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>㬥<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筠<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> n1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᥫ.
|
|||
|
MOV EBX, EAX
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV EAX, [EBP+4]
|
|||
|
IDIV EBX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
MOV [EBP], EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code FM/MOD ;( d1 n1 -- n2 n3 ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d1 <EFBFBD><EFBFBD> n1, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n3 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n2.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EDX, [EBP]
|
|||
|
MOV EBX, EDX
|
|||
|
MOV EAX, [EBP+4]
|
|||
|
IDIV ECX
|
|||
|
TEST EDX, EDX ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
|||
|
JZ SHORT @@1
|
|||
|
XOR EBX, ECX ; <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
|||
|
JNS SHORT @@1
|
|||
|
DEC EAX
|
|||
|
ADD EDX, ECX
|
|||
|
@@1: LEA EBP, [EBP+4]
|
|||
|
MOV [EBP], EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Code = ;( x1 x2 -- flag ) \ 94
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮ ࠢ<EFBFBD><EFBFBD> x2.
|
|||
|
XOR EAX, [EBP]
|
|||
|
SUB EAX, 1
|
|||
|
SBB EAX, EAX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code <> ;( x1 x2 -- flag ) \ 94 CORE EXT
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x1 <EFBFBD><EFBFBD> ࠢ<EFBFBD><EFBFBD> x2.
|
|||
|
XOR EAX, [EBP]
|
|||
|
NEG EAX
|
|||
|
SBB EAX, EAX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code < ;( n1 n2 -- flag ) \ 94
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n2.
|
|||
|
CMP [EBP], EAX
|
|||
|
SETGE AL
|
|||
|
AND EAX, 01
|
|||
|
DEC EAX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code > ;( n1 n2 -- flag ) \ 94
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n2.
|
|||
|
CMP EAX, [EBP]
|
|||
|
SETGE AL
|
|||
|
AND EAX, 01
|
|||
|
DEC EAX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code WITHIN ;( n1 low high -- f1 ) \ f1=true if ((n1 >= low) & (n1 < high))
|
|||
|
MOV EBX, [EBP+4]
|
|||
|
SUB EAX, [EBP]
|
|||
|
SUB EBX, [EBP]
|
|||
|
SUB EBX, EAX
|
|||
|
SBB EAX, EAX
|
|||
|
ADD EBP, 8
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D< ;( d1 d2 -- flag ) \ DOUBLE
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d2.
|
|||
|
MOV EBX, [EBP]
|
|||
|
CMP DWORD PTR [EBP +8 ], EBX
|
|||
|
SBB DWORD PTR [EBP +4 ], EAX
|
|||
|
MOV EAX, 0
|
|||
|
SIF <
|
|||
|
DEC EAX
|
|||
|
STHEN
|
|||
|
ADD EBP, 0CH
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D> ;( d1 d2 -- flag ) \ DOUBLE
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> d2.
|
|||
|
MOV EBX, [EBP]
|
|||
|
CMP EBX, [EBP+8]
|
|||
|
SBB EAX, [EBP+4]
|
|||
|
SAR EAX, 1FH
|
|||
|
ADD EBP, 0CH
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code U< ;( u1 u2 -- flag ) \ 94
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u2.
|
|||
|
CMP [EBP], EAX
|
|||
|
SBB EAX, EAX
|
|||
|
ADD EBP, 04
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code U> ;( u1 u2 -- flag ) \ 94
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u2.
|
|||
|
CMP EAX, [EBP]
|
|||
|
SBB EAX, EAX
|
|||
|
ADD EBP, 04
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 0< ;( n -- flag ) \ 94
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
SAR EAX, 1F
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 0= ;( x -- flag ) \ 94
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x ࠢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
SUB EAX, 1
|
|||
|
SBB EAX, EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code 0<> ;( x -- flag ) \ 94 CORE EXT
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x <EFBFBD><EFBFBD> ࠢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
NEG EAX
|
|||
|
SBB EAX, EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D0= ;( xd -- flag ) \ 94 DOUBLE
|
|||
|
; flag "<22><>⨭<EFBFBD>" ⮣<EFBFBD><EFBFBD> <EFBFBD> ⮫쪮 ⮣<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> xd ࠢ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
OR EAX, [EBP]
|
|||
|
SUB EAX, 1
|
|||
|
SBB EAX, EAX
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D= ;( xd1 xd2 -- flag ) \ 94 DOUBLE
|
|||
|
; flag is true if and only if xd1 is bit-for-bit the same as xd2
|
|||
|
MOV EDX,[EBP]
|
|||
|
XOR EAX,[EBP+4]
|
|||
|
XOR EDX,[EBP+8]
|
|||
|
OR EAX,EDX
|
|||
|
SUB EAX,1
|
|||
|
SBB EAX,EAX
|
|||
|
LEA EBP,[EBP+0CH]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D2* ;( xd1 -- xd2 ) \ 94 DOUBLE
|
|||
|
; xd2 is the result of shifting xd1 one bit toward the most-significant
|
|||
|
; bit, filling the vacated least-significant bit with zero
|
|||
|
SHL DWORD PTR [EBP], 1
|
|||
|
RCL EAX, 1
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code D2/ ;( xd1 -- xd2 ) \ 94 DOUBLE
|
|||
|
; xd2 is the result of shifting xd1 one bit toward the least-significant bit,
|
|||
|
; leaving the most-significant bit unchanged
|
|||
|
SAR EAX, 1
|
|||
|
RCR DWORD PTR [EBP], 1
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20><>ப<EFBFBD>
|
|||
|
|
|||
|
Code -TRAILING ;( c-addr u1 -- c-addr u2 ) \ 94 STRING
|
|||
|
; <20> u1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, u2 ࠢ<EFBFBD><EFBFBD> u1, 㬥<EFBFBD><EFBFBD>襭<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; ᨬ<><E1A8AC><EFBFBD>쭮<EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr <EFBFBD> u1. <EFBFBD> u1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⮨<EFBFBD>
|
|||
|
; <20><> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, u2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
PUSH EDI
|
|||
|
MOV ECX, EAX
|
|||
|
SIF C0<>
|
|||
|
MOV EDI, DWORD PTR [EBP]
|
|||
|
ADD EDI, ECX
|
|||
|
DEC EDI
|
|||
|
MOV AL, 20H
|
|||
|
STD
|
|||
|
REPZ SCASB
|
|||
|
SIF 0<>
|
|||
|
INC ECX
|
|||
|
STHEN
|
|||
|
CLD
|
|||
|
MOV EAX, ECX
|
|||
|
STHEN
|
|||
|
POP EDI
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code COMPARE ;( c-addr1 u1 c-addr2 u2 -- n ) \ 94 STRING !!!!!
|
|||
|
; <20>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr1 u1, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr2 u2.
|
|||
|
; <20><>ப<EFBFBD> <EFBFBD>ࠢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>稭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ, ᨬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⪮<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>宦<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<EFBFBD><EFBFBD>稩. <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, n <EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⪮<EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
; <20><>ப, <EFBFBD><EFBFBD> n <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (-1), <EFBFBD> u1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (1).
|
|||
|
; <20> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⪮<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப, <EFBFBD><EFBFBD> n <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (-1), <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 ᨬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr1 u1
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>襥 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD>, 祬 ᮮ⢥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>騩 ᨬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>,
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr2 u2, <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>⨢<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>砥.
|
|||
|
PUSH EDI
|
|||
|
MOV ECX, EAX
|
|||
|
SUB EAX, EAX
|
|||
|
CMP ECX, [EBP +4 ]
|
|||
|
SIF 0<>
|
|||
|
SIF U<
|
|||
|
INC EAX
|
|||
|
SELSE
|
|||
|
DEC EAX
|
|||
|
MOV ECX, [EBP +4 ]
|
|||
|
STHEN
|
|||
|
STHEN
|
|||
|
MOV ESI, [EBP + { 2 CELLS } ]
|
|||
|
MOV EDI, [EBP]
|
|||
|
REPE CMPSB
|
|||
|
SIF 0<>
|
|||
|
SIF U>=
|
|||
|
MOV EAX, 1
|
|||
|
SELSE
|
|||
|
MOV EAX, -1
|
|||
|
STHEN
|
|||
|
STHEN
|
|||
|
LEA EBP, [EBP + { 3 CELLS } ]
|
|||
|
POP EDI
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code SEARCH ;( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) \ 94 STRING
|
|||
|
; <20>ந<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr1 u1, <EFBFBD><EFBFBD>ப<EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr2 u2.
|
|||
|
; <20> 䫠<EFBFBD> "<22><>⨭<EFBFBD>", ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr3 <EFBFBD> <EFBFBD><EFBFBD>⠢訬<EFBFBD><EFBFBD><EFBFBD> u3
|
|||
|
; ᨬ<><E1A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD> 䫠<EFBFBD> "<22><><EFBFBD><EFBFBD>", ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD> c-addr3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr1,
|
|||
|
; <20> u3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> u1. \ !!!!!
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
PUSH EDI
|
|||
|
CLD
|
|||
|
MOV EBX, DWORD PTR [EBP]
|
|||
|
OR EBX, EBX
|
|||
|
SIF 0<>
|
|||
|
MOV EDX, DWORD PTR [EBP + { 2 CELLS } ]
|
|||
|
MOV EDI, DWORD PTR [EBP + { 3 CELLS } ]
|
|||
|
ADD EDX, EDI
|
|||
|
SBEGIN
|
|||
|
MOV ESI, DWORD PTR [EBP +4 ]
|
|||
|
LODSB
|
|||
|
MOV ECX, EDX
|
|||
|
SUB ECX, EDI
|
|||
|
JECXZ LLD
|
|||
|
REPNZ
|
|||
|
SCASB
|
|||
|
JNE SHORT LLD ; <EFBFBD><EFBFBD> <EFBFBD>ᥩ <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ࢮ<EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>
|
|||
|
CMP EBX, 1
|
|||
|
JZ SHORT LLC ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MOV ECX, EBX
|
|||
|
DEC ECX
|
|||
|
MOV EAX, EDX
|
|||
|
SUB EAX, EDI
|
|||
|
CMP EAX, ECX
|
|||
|
JC SHORT LLD ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮪ <EFBFBD><EFBFBD>ப<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ப<EFBFBD>
|
|||
|
PUSH EDI
|
|||
|
REPZ CMPSB
|
|||
|
POP EDI
|
|||
|
SUNTIL 0=
|
|||
|
LLC: DEC EDI ; <EFBFBD><EFBFBD>諨 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᮢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
SUB EDX, EDI
|
|||
|
MOV DWORD PTR [EBP + { 3 CELLS } ], EDI
|
|||
|
MOV DWORD PTR [EBP + { 2 CELLS } ], EDX
|
|||
|
STHEN
|
|||
|
MOV EAX, -1
|
|||
|
JMP SHORT LLA
|
|||
|
LLD: XOR EAX, EAX
|
|||
|
LLA: LEA EBP, [EBP+4]
|
|||
|
MOV [EBP], EAX
|
|||
|
POP EDI
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code CMOVE ;( c-addr1 c-addr2 u -- ) \ 94 STRING
|
|||
|
; <20> u <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢠
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>稭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr1 <EFBFBD> c-addr2, ᨬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>稭<EFBFBD><EFBFBD> <EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>訬.
|
|||
|
MOV EDX, EDI
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EDI, DWORD PTR [EBP]
|
|||
|
MOV ESI, DWORD PTR [EBP +4 ]
|
|||
|
CLD
|
|||
|
REPZ MOVSB
|
|||
|
LEA EBP, [EBP+0CH]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
MOV EDI, EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
: QCMOVE CMOVE ;
|
|||
|
|
|||
|
Code CMOVE> ;( c-addr1 c-addr2 u -- ) \ 94 STRING
|
|||
|
; <20> u <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> u <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD>⢠
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>稭<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr1 <EFBFBD> c-addr2, ᨬ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᨬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>稭<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᮢ <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>訬.
|
|||
|
|
|||
|
MOV EDX, EDI
|
|||
|
MOV ECX, EAX
|
|||
|
MOV EDI, [EBP]
|
|||
|
MOV ESI, [EBP+4]
|
|||
|
STD
|
|||
|
ADD EDI, ECX
|
|||
|
DEC EDI
|
|||
|
ADD ESI, ECX
|
|||
|
DEC ESI
|
|||
|
REP MOVSB
|
|||
|
MOV EDI, EDX
|
|||
|
LEA EBP, [EBP+0CH]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code FILL ;( c-addr u char -- ) \ 94 \ !!!!!
|
|||
|
; <20> u <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> char <EFBFBD> u <EFBFBD><EFBFBD><EFBFBD>⮢ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c-addr.
|
|||
|
MOV EDX, EDI
|
|||
|
MOV ECX, [EBP]
|
|||
|
MOV EDI, [EBP+4]
|
|||
|
CLD
|
|||
|
REP STOSB
|
|||
|
MOV EDI, EDX
|
|||
|
LEA EBP, [EBP+0CH]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code ZCOUNT ;( c-addr -- c-addr u )
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
XOR EBX, EBX
|
|||
|
SBEGIN
|
|||
|
MOV BL, BYTE PTR [EAX ]
|
|||
|
INC EAX
|
|||
|
OR BL, BL
|
|||
|
SUNTIL 0=
|
|||
|
DEC EAX
|
|||
|
SUB EAX, [EBP]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <EFBFBD>⥪<EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Code SP! ;( A -> )
|
|||
|
LEA EBP, [EAX+4]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RP! ;( A -> )
|
|||
|
POP EBX
|
|||
|
MOV ESP, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
JMP EBX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code SP@ ;( -> A )
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, EBP
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RP@ ;( -- RP )
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
LEA EAX, [ESP + 4 ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>⮪<EFBFBD> (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
|||
|
Code TlsIndex! ;( x -- ) \ 㪠<><E3AAA0>⥫<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮<EFBFBD><ECADAE> <20>㫠 <20><>⮪<EFBFBD>
|
|||
|
MOV EDI, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code TlsIndex@ ;( -- x )
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, EDI
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Code C-J
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, DWORD PTR [ESP + { 3 CELLS } ]
|
|||
|
SUB EAX, DWORD PTR [ESP + { 4 CELLS } ]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
( inline'<EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>樨 横<EFBFBD><EFBFBD><EFBFBD> )
|
|||
|
|
|||
|
Code C-DO
|
|||
|
LEA EBP, [EBP+8]
|
|||
|
MOV EDX, 80000000H
|
|||
|
SUB EDX, [EBP-8]
|
|||
|
LEA EBX, [EAX+EDX]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
MOV EDX, EDX ; FOR OPT
|
|||
|
; PUSH EDX
|
|||
|
; PUSH EBX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C-?DO
|
|||
|
CMP EAX, [EBP-8]
|
|||
|
SIF 0=
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
JMP EBX
|
|||
|
STHEN
|
|||
|
PUSH EBX
|
|||
|
MOV EBX , 80000000
|
|||
|
SUB EBX, [EBP-8]
|
|||
|
PUSH EBX ; 80000000h-to
|
|||
|
ADD EBX, EAX
|
|||
|
PUSH EBX ; 80000000H-to+from
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code ADD[ESP],EAX
|
|||
|
ADD [ESP] , EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C-I
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
MOV EAX, DWORD PTR [ESP]
|
|||
|
SUB EAX, [ESP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C->R
|
|||
|
PUSH EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C-R>
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
POP EAX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C-RDROP
|
|||
|
ADD ESP, 4
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C-2RDROP
|
|||
|
ADD ESP, 8
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code C-3RDROP
|
|||
|
ADD ESP, 0CH
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
TRUE [IF]
|
|||
|
Code C-EXECUTE ;( i*x xt -- j*x ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> xt <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD> <EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᥬ<EFBFBD><EFBFBD>⨪<EFBFBD>.
|
|||
|
; <20><>㣨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MOV EDX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
CALL EDX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
[THEN]
|
|||
|
|
|||
|
Code EXECUTE ;( i*x xt -- j*x ) \ 94
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> xt <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD> <EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᥬ<EFBFBD><EFBFBD>⨪<EFBFBD>.
|
|||
|
; <20><>㣨<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD>।<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>믮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
MOV EBX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
JMP EBX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code @EXECUTE ;( i*x xt -- j*x )
|
|||
|
MOV EBX, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
JMP [EBX]
|
|||
|
EndCode
|
|||
|
|
|||
|
\ ================================================================
|
|||
|
\ <20><><EFBFBD><EFBFBD><EFBFBD>প<EFBFBD> LOCALS
|
|||
|
|
|||
|
Code DRMOVE ;( x1 ... xn n*4 -- )
|
|||
|
; <20><>७<EFBFBD><EFBFBD><EFBFBD><EFBFBD> n <EFBFBD><EFBFBD>ᥫ <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
POP EDX ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MOV ESI, EAX
|
|||
|
LL1:
|
|||
|
PUSH DWORD PTR [EBP+ESI-4]
|
|||
|
SUB ESI, 4
|
|||
|
JNZ SHORT LL1
|
|||
|
ADD EBP, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code NR> ;( R: x1 ... xn n -- D: x1 ... xn n )
|
|||
|
; <20><>७<EFBFBD><EFBFBD><EFBFBD><EFBFBD> n <EFBFBD><EFBFBD>ᥫ <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢ <EFBFBD><EFBFBD> <EFBFBD>⥪ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20> n=0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0
|
|||
|
POP EDX ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
POP EAX
|
|||
|
OR EAX, EAX
|
|||
|
JNZ @@2
|
|||
|
JMP EDX
|
|||
|
|
|||
|
@@2: LEA EAX, [EAX*4]
|
|||
|
MOV ESI, EAX
|
|||
|
@@1:
|
|||
|
MOV EBX, EBP
|
|||
|
SUB EBX, ESI
|
|||
|
POP DWORD PTR [EBX]
|
|||
|
SUB ESI, 4
|
|||
|
JNZ SHORT @@1
|
|||
|
SUB EBP, EAX
|
|||
|
SAR EAX, 2
|
|||
|
JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code N>R ;( D: x1 ... xn n -- R: x1 ... xn n )
|
|||
|
; <20><>७<EFBFBD><EFBFBD><EFBFBD><EFBFBD> n <EFBFBD><EFBFBD>ᥫ <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
LEA EBP, [EBP-4]
|
|||
|
MOV [EBP], EAX
|
|||
|
LEA EAX, [EAX*4+4]
|
|||
|
|
|||
|
POP EDX ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
MOV ESI, EAX
|
|||
|
@@1:
|
|||
|
PUSH DWORD PTR [EBP+ESI-4]
|
|||
|
SUB ESI, 4
|
|||
|
JNZ SHORT @@1
|
|||
|
ADD EBP, EAX
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code NRCOPY ;( D: i*x i -- D: i*x i R: i*x i )
|
|||
|
; <><E1AAAE><EFBFBD><EFBFBD><EFBFBD> n <EFBFBD><EFBFBD>ᥫ <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
MOV ECX, EAX
|
|||
|
LEA ECX, [ECX*4]
|
|||
|
|
|||
|
POP EDX ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
JECXZ @@2
|
|||
|
MOV ESI, ECX
|
|||
|
@@1:
|
|||
|
PUSH DWORD PTR [ESI+EBP-4]
|
|||
|
SUB ESI, 4
|
|||
|
JNZ SHORT @@1
|
|||
|
@@2:
|
|||
|
PUSH EAX
|
|||
|
JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RP+@ ;( offs -- x )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᬥ饭<EFBFBD><EFBFBD><EFBFBD> offs <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢ (0 RP+@ == RP@)
|
|||
|
MOV EAX, [EAX+ESP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RP+ ;( offs -- addr )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ᬥ饭<EFBFBD><EFBFBD><EFBFBD> offs <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
LEA EAX, [EAX+ESP+4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RP+! ;( x offs -- )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> x <EFBFBD><EFBFBD> ᬥ饭<EFBFBD><EFBFBD> offs <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>設<EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
MOV EBX, [EBP]
|
|||
|
MOV [EAX+ESP+4], EBX
|
|||
|
LEA EBP, [EBP+8]
|
|||
|
MOV EAX, [EBP-4]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RALLOT ;( n -- addr )
|
|||
|
; <20><>१<EFBFBD>ࢨ<EFBFBD><EFBFBD><EFBFBD> n <EFBFBD>祥<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢,
|
|||
|
; ᤥ<><E1A4A5><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD>樠<EFBFBD><EFBFBD><EFBFBD><EFBFBD>樥<EFBFBD> (<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8<EFBFBD> <EFBFBD>뤥<EFBFBD><EFBFBD><EFBFBD>, exception <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
POP EDX
|
|||
|
MOV ECX, EAX
|
|||
|
XOR EAX, EAX
|
|||
|
@@1: PUSH EAX
|
|||
|
DEC ECX
|
|||
|
JNZ SHORT @@1
|
|||
|
MOV EAX, ESP
|
|||
|
JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code (RALLOT) ;( n -- )
|
|||
|
; <20><>१<EFBFBD>ࢨ<EFBFBD><EFBFBD><EFBFBD> n <EFBFBD>祥<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
POP EDX
|
|||
|
MOV ECX, EAX
|
|||
|
XOR EAX, EAX
|
|||
|
@@1: PUSH EAX
|
|||
|
DEC ECX
|
|||
|
JNZ SHORT @@1
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code RFREE ;( n -- )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n <EFBFBD>祥<EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
POP EDX
|
|||
|
LEA ESP, [ESP+EAX*4]
|
|||
|
MOV EAX, [EBP]
|
|||
|
LEA EBP, [EBP+4]
|
|||
|
JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
Code (LocalsExit) ;( -- )
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>⥪ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD>
|
|||
|
POP EBX
|
|||
|
ADD ESP, EBX
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
Code TIMER@ ;( -- tlo thi ) \ <20><><EFBFBD>쪮 <20><><EFBFBD> Intel Pentium <20> <20><><EFBFBD><EFBFBD>!!!
|
|||
|
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD> ⠩<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> ud
|
|||
|
MOV [EBP-4], EAX
|
|||
|
RDTSC
|
|||
|
MOV [EBP-8], EDX
|
|||
|
LEA EBP, [EBP-8]
|
|||
|
XCHG EAX, [EBP]
|
|||
|
RET
|
|||
|
EndCode
|
|||
|
|
|||
|
\ <20><><EFBFBD> <EFBFBD><EFBFBD>⠫<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
|||
|
\ : TIMER@ 0 GetTickCount ;
|
|||
|
|
|||
|
Code TRAP-CODE ;( D: j*x u R: i*x i -- i*x u )
|
|||
|
; <20>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>⥫쭮<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>祭<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>࠭<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; <20><>। CATCH <EFBFBD><EFBFBD> <EFBFBD>⥪<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⮢
|
|||
|
POP EDX
|
|||
|
POP ESI
|
|||
|
OR ESI, ESI
|
|||
|
JZ @@2
|
|||
|
LEA ESI, [ESI*4]
|
|||
|
MOV ECX, ESI
|
|||
|
@@1: MOV EBX, [ESI+ESP-4]
|
|||
|
MOV [ESI+EBP-4], EBX
|
|||
|
SUB ESI, 4
|
|||
|
JNZ SHORT @@1
|
|||
|
ADD ESP, ECX
|
|||
|
@@2: JMP EDX
|
|||
|
EndCode
|
|||
|
|
|||
|
DECIMAL
|