Seite 1 von 1

ASM: Register EBX nutzbar?

Verfasst: 25.02.2012 04:39
von STARGÅTE
Tachchen,

in der Hilfe steht ja:
PureBasic Hilfe hat geschrieben:- Die verwendbaren Register sind: eax, edx und ecx. Alle anderen müssen immer reserviert bleiben.
Ich würde nun aber gerne auch ebx für eigene Zwecke nutzen.
Darf ich ebx verändern, wenn ich am Anfang den Wert von ebx sichere und dann am Ende wieder hineinschreibe?

zB so:

Code: Alles auswählen

Define BackupEBX.l, Wert.l

EnableASM
	MOV  BackupEBX, ebx ; Backup
	MOV  ebx, 123       ; Verändern
	MOV  Wert, ebx
	MOV  ebx, BackupEBX ; Zurücksetzen
DisableASM

Debug Wert

Re: ASM: Register EBX nutzbar?

Verfasst: 25.02.2012 05:00
von NicTheQuick
Ich nehme an, wenn du dazwischen keine anderen PB-Befehle nutzt und den Debugger währenddessen deaktivierst, sollte nichts passieren.

Re: ASM: Register EBX nutzbar?

Verfasst: 28.02.2012 21:59
von Thorium
Es hat sich in der Praxis bewährt weitgehend auf EnableASM zu verzichten und stattessen ASM-Zeilen mit einem Ausrufezeichen zu beginnen. Das bewirkt das PB diese Zeile direkt
so wie sie ist an den Assembler weitergibt. Dadurch hat man dann absolut keine Einschränkungen mehr. Register müssen natürlich dennoch gesichert werden.

Ausserdem ist es am besten wenn man ASM und PB strickt trennt, also ASM in eigene Prozeduren ohne PB Befehle dazwischen zu haben.