| Autor | Beitrag | 
| patrick 
          Beiträge: 1481
 
 WIN2k, WIN XP
 D6 Personal, D2005 PE
 
 | 
Verfasst: Fr 10.12.04 09:35 
 
nachdem meine prüfung jetzt vorbei ist, bin ich wieder fleißig am asm programmieren.
allerdings habe ich noch eine sehr grundlegende frage:
 
 kann ich werte einfach so in einen beliebigen speicherbereich abspeichern oder muss ich zuvor einen gewissen speicherbereich in windows reservieren (wovon ich ausgehe).
 wenn ja, wie sag ich windows wo mein speicherbereich liegt?
 _________________ Patrick
im zweifelsfall immer das richtige tun!!! | 
|  | 
| BenBE 
          Beiträge: 8721
 Erhaltene Danke: 191
 
 Win95, Win98SE, Win2K, WinXP
 D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
 
 | 
Verfasst: Fr 10.12.04 13:42 
 
GetMem \ FreeMem. Diese brauchst du einfach in deiner Prozedur aufrufen und erhälst dann in EAX eine Adresse für diesen Speicherblock. _________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 | 
|  | 
| patrick  
          Beiträge: 1481
 
 WIN2k, WIN XP
 D6 Personal, D2005 PE
 
 | 
Verfasst: Sa 11.12.04 12:11 
 
achso, danke.
und wie groß ist so ein speicherblock?
 _________________ Patrick
im zweifelsfall immer das richtige tun!!! | 
|  | 
| tommie-lie 
          Beiträge: 4373
 
 Ubuntu 7.10 "Gutsy Gibbon"
 
 
 | 
Verfasst: Sa 11.12.04 12:18 
 
Deklaration: function _GetMem(Size: Integer): Pointer; _________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert | 
|  | 
| patrick  
          Beiträge: 1481
 
 WIN2k, WIN XP
 D6 Personal, D2005 PE
 
 | 
Verfasst: Sa 11.12.04 14:12 
 
plofff      zu dem selben thema noch ne erweiterte frage:
 wie ist das mit vollständig in asm geschriebenen programmen?
 da hat man ja diese nützliche funktion nicht._________________ Patrick
im zweifelsfall immer das richtige tun!!! | 
|  | 
| I.MacLeod 
          Beiträge: 109
 
 
 
 
 | 
Verfasst: Sa 11.12.04 14:16 
 | 
|  | 
| tommie-lie 
          Beiträge: 4373
 
 Ubuntu 7.10 "Gutsy Gibbon"
 
 
 | 
Verfasst: Sa 11.12.04 14:24 
 
Nuja, VirtualAlloc ist nichtmal nötig, die System.pas ist ja so oder so eingebunden, GetMem steht also so oder so zur Verfügung  (vorausgesetzt du benutzt den Delphi-Inline-Assembler   ). Daher kannst du GetMem wie jede andere stdcall-Funktion auch aufrufen: Größe in EAX, Call, Pointer befindet sich anschließend in EAX    Nur ob der Funktionsname im Assembler GetMem oder _GetMem heißt, weiß ich nicht, denn ich weiß nicht, wie CompilerMagic in Assembler-Blöcken eingreift. Das kann man aber einfach mal ausprobieren  _________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert | 
|  | 
| patrick  
          Beiträge: 1481
 
 WIN2k, WIN XP
 D6 Personal, D2005 PE
 
 | 
Verfasst: Sa 11.12.04 20:42 
 
@tommie-lie: nein, ich wollte eigendlich auch mal entfernt von delphi etwas asm programmieren  _________________ Patrick
im zweifelsfall immer das richtige tun!!! | 
|  | 
| tommie-lie 
          Beiträge: 4373
 
 Ubuntu 7.10 "Gutsy Gibbon"
 
 
 | 
Verfasst: Sa 11.12.04 20:52 
 
Tja, dann müsstest du dir Header für die Windows-Funktionen besorgen, die dein Assembler versteht (Win32-Assembler), dann gibt's VirtualAlloc und VirtualAllocEx für sowas, und wie das geht, hat I.MacLeod schon geschrieben. _________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert | 
|  | 
| raziel 
          Beiträge: 2453
 
 Arch Linux
 JS (WebStorm), C#, C++/CLI, C++ (VS2013)
 
 | 
Verfasst: Sa 11.12.04 21:23 
 
Header Datei für Win32 für den NetwideAssembler (NASM ) gibt es hier  (win32.inc ). Außerdem brauchst Du noch die .lib für Deinen Linker. Für ALink  z.B. kannst Du hier  eine Lib runterladen (win32.lib ).
 Gruß
 raziel_________________JSXGraph | 
|  | 
| patrick  
          Beiträge: 1481
 
 WIN2k, WIN XP
 D6 Personal, D2005 PE
 
 | 
Verfasst: So 12.12.04 22:33 
 
danke für eure antworten.
 das beantwortet weitestgehend meine fragen.  _________________ Patrick
im zweifelsfall immer das richtige tun!!! | 
|  |