Subversion Repositories Kolibri OS

Rev

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

  1. ( à®æ¥¤ãàë ¢à¥¬¥­¨ ¢ë¯®«­¥­¨ï ¤«ï CONSTANT, VARIABLE, etc.
  2.   Ž‘-­¥§ ¢¨á¨¬ë¥ á«®¢ .
  3.   Copyright [C] 1992-1999 A.Cherezov ac@forth.org
  4.   à¥®¡à §®¢ ­¨¥ ¨§ 16-à §à來®£® ¢ 32-à §àï¤­ë© ª®¤ - 1995-96££
  5.   ¥¢¨§¨ï - ᥭâï¡àì 1999
  6.   Œ®¤¨ä¨æ¨à®¢ ­­® Œ ªá¨¬®¢ë¬ Œ.Ž.
  7.   email:mak@mail.rtc.neva.ru
  8.   http://informer.rtc.neva.ru/
  9.   â ¤ {812}105-92-03
  10.   â à {812}552-47-64
  11. )
  12.  
  13. Code _CREATE-CODE
  14.      SUB  EBP,  4
  15.      MOV [EBP] , EAX
  16.      POP EAX
  17.      RET
  18. EndCode
  19.  
  20. Code _CONSTANT-CODE
  21.      SUB EBP , 4
  22.      MOV [EBP] , EAX
  23.      POP EAX
  24.      MOV EAX, [EAX]
  25.      RET
  26. EndCode
  27.  
  28. Code _USER-CODE
  29.      SUB  EBP, 4
  30.      MOV [EBP], EAX
  31.      POP EAX
  32.      MOV EAX, [EAX]
  33.      ADD EAX,  EDI
  34.      RET
  35. EndCode
  36.  
  37. Code USER+ ;( offs -- addr )
  38.      ADD EAX,  EDI
  39.      RET
  40. EndCode
  41.  
  42. Code _USER-VALUE-CODE
  43.      SUB  EBP ,  4
  44.      MOV [EBP] , EAX
  45.      POP EAX
  46.      MOV EAX, [EAX]
  47.      ADD EAX,  EDI
  48.      MOV EAX, [EAX]
  49.      RET
  50. EndCode
  51.  
  52.  
  53. Code _USER-VECT-CODE
  54.      POP  EBX
  55.      MOV  EBX, [EBX]
  56.      LEA  EBX, [EDI+EBX]
  57.      MOV  EBX, [EBX]
  58.      JMP  EBX
  59.      RET
  60. EndCode
  61.  
  62. Code _VECT-CODE
  63.      POP EBX
  64.      JMP [EBX]
  65. EndCode
  66.  
  67. Code _TOVALUE-CODE
  68.      POP EBX
  69.      SUB EBX, 9
  70.      MOV [EBX] , EAX
  71.      MOV EAX, [EBP]
  72.      ADD EBP, 4
  73.      RET
  74. EndCode
  75.  
  76. Code _TOUSER-VALUE-CODE
  77.      POP EBX
  78.      SUB EBX,  9
  79.      MOV EBX, [EBX] ; ᬥ饭¨¥ user-¯¥à¥¬¥­­®©
  80.      ADD EBX, EDI
  81.      MOV [EBX] , EAX
  82.      MOV EAX, [EBP]
  83.      ADD EBP,  4
  84.      RET
  85. EndCode
  86.  
  87.  
  88. Code _SLITERAL-CODE
  89.      SUB   EBP, 8
  90.      MOV   [EBP+4], EAX
  91.      POP   EBX
  92.      MOVZX EAX,  BYTE PTR [EBX]
  93.      INC   EBX
  94.      MOV   [EBP], EBX
  95.      ADD   EBX, EAX
  96. ;     INC   EBX
  97.      JMP   EBX
  98. EndCode
  99.  
  100. Code _CLITERAL-CODE
  101.      SUB   EBP, 4
  102.      MOV   [EBP] , EAX
  103.      POP   EAX
  104.      MOVZX EBX, BYTE PTR [EAX]
  105.      LEA   EBX, [EAX+EBX+1]
  106.      JMP   EBX
  107. EndCode
  108.  
  109. \EOF
  110. ' _CLITERAL-CODE VALUE CLITERAL-CODE
  111. '   _CREATE-CODE VALUE   CREATE-CODE
  112. '     _USER-CODE VALUE     USER-CODE
  113. ' _CONSTANT-CODE VALUE CONSTANT-CODE
  114. '  _TOVALUE-CODE VALUE  TOVALUE-CODE
  115.