IT-Berater: Theo Gottwald (IT-Consultant) > x64 Board

X64-Register Table


Theo Gottwald:

If i see it right, we may have more  REGISTER Variables in a future PB x64!

x86-64 Mnemonics

x86-64 Gen. Infos (CSC 373 Sections 501,510 Winter 2016 Assembly Language)[/url]

Aslan Babakhanov:
Yes, that's right! And this will give us benefits in many areas and avoid data allocation in segments. i.e. direct register usage.
Imagine, that you have registers from RAX to RGX and general purpose registers from R8 to R15!

Just speculating the syntax ;)

--- Code: ---' FULL full range of register i.e. 64 bit,
       Y AS REG_R9, _
       Z AS REG_R10

X = Y + Z

? STR$(X)

 ' will be complied as
 ' xor r8, r8
 ' xor r9, r9
 ' xor r10, r10
 ' add r9, r10
 ' mov r8, r10
 ' push r8
 ' call STR64$
 ' push rax
 ' call MsgBox64

--- End code ---
You can look at real 64 bit applications written in fasm for information at

Theo Gottwald:
We'll see how many Registers Bob needs internally and for the runtime.

But I am sure he'll leave us some more then the two REGISTERS of PB x32.
I like Register-Variables and Inline ASM.
And I generally avoid languages that do not have them.

Aslan Babakhanov:
BTW, I'd like the idea of PREFIX statement in PB10, but in my opinion, for inline assembler would be better to use ASM/END ASM blocks --

this looks irregular.

--- Code: ---FASTPROC xx: PREFIX "! "
  push ebp
  mov esp, ebp

--- End code ---

But this syntax is looking elegant and similar to other languages with inline asm

--- Code: ---FASTPROC xx
   push ebp
   mov esp, ebp

--- End code ---

What do you think?

Theo Gottwald:
Aslan, i think ... you can do it yourself using a MACRO :-).
For me, i do not use ASM sooo often that this would make a significant difference.
Actually i use the "!" in every line.

The Prefix did not make it to my toolbox as it has some exceptions i'd had to study first.


[0] Message Index

Go to full version