.PCU Dateien

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • .PCU Dateien

      Was ist mit den Units passiert ?
      Das Beispiel in der Hilfe funktioniert bei mir nicht mehr.
      Der Compiler macht zwar eine Unit (.pcu) aber das
      aufrufende Programm macht nichts.

      Hintergrund :
      Ich will mir eine Sammlung mit ASM geschriebenen Funktionen
      anlegen. Also sowas :

      Quellcode

      1. $L
      2. ASM "FindMid3", 3
      3. PUSH EBX
      4. PUSH ECX
      5. PUSH EDX
      6. PUSH ESI
      7. PUSH EDI
      8. MOV ESI, Par1 // Zieladresse
      9. MOV ECX, Par2 // Größe
      10. MOV EDI, Par3 // Profan-Varibale als Fehlerflag
      11. XOR EBX, EBX // EBX löschen, Anfangswert für Summierung
      12. MOV [EDI], EBX // Fehlerflag löschen
      13. CLD
      14. DEC ECX
      15. PUSH ECX // Anzahl Einträge notieren
      16. JMP @@smSchleife
      17. @@smErr: // Bei Überlauf
      18. POP EAX
      19. MOV ECX, -1 // Fehlerwert
      20. MOV [EDI], ECX // Fehlerflag-Variable setzen
      21. JMP @@smEnd // Und zum Ende
      22. @@smSchleife:
      23. //xor ebx, ebx
      24. LODSD // Wert lesen
      25. // für später (noch einbauen):
      26. // Abstand EBX zum MaxMin-Wert $7FFFFFFF-$FFFFFFFF muß kleiner
      27. // sein als EAX abhängig von den Vorzeichen
      28. ADD EBX, EAX // Gelesenen Wert zu EBX addieren
      29. JO @@smErr // Bei Überlauf raus
      30. LOOP @@smSchleife // Wiederholen bis ECX = 0
      31. MOV EAX, EBX // Summe nach EAX
      32. XOR EDX, EDX // EDX löschen für Division EDX:EAX / ECX
      33. CMP EAX, 0 // ist negativ Zahl in EAX
      34. JG @@smNoN // Nein
      35. DEC EDX // sonst negatives Vorzeichen nach EDX
      36. @@smNoN:
      37. POP ECX // notierte Anzahl Einträge zurückholen
      38. IDIV ECX // Summe durch Anzahl Einträge
      39. // Érgebnis steht in EAX
      40. @@smEnd:
      41. POP EDI
      42. POP ESI
      43. POP EDX
      44. POP ECX
      45. POP EBX
      46. EndASM
      47. Proc ?_Mittelwert
      48. Parameters Long arrayadrr, size, fehler
      49. Return FindMid3(arrayaddr, size, fehler)
      50. EndProc
      Alles anzeigen

      Interessant wäre in diesem Zusammenhang jetzt auch noch, wenn man einen Namensraum der
      ASM-Routine direkt vergeben könnte

      Quellcode

      1. ASM "?_Mittelwert", 3
      Es scheint auch so, daß keine Rückgabewerte (RETURN) gehen.
      Hat das schon jemand getestet ?