Jose's Read Only Forum 2023

IT-Berater: Theo Gottwald (IT-Consultant) => x64 Board => Topic started by: Theo Gottwald on March 16, 2012, 08:18:16 AM

Title: X64-Register Table
Post by: Theo Gottwald on March 16, 2012, 08:18:16 AM
(https://ntcore.com/files/vista_x64/x64_registers.jpg)

(https://denhamcoder.files.wordpress.com/2018/07/072418_1532_x86x64regis1.png?w=748&zoom=2)

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

x86-64 Mnemonics (http://ref.x86asm.net/)


x86-64 Gen. Infos (CSC 373 Sections 501,510 Winter 2016 Assembly Language)[/url (https://condor.depaul.edu/slytinen/373w16/ch3.html)]
Title: Re: X64-Register Table
Post by: Aslan Babakhanov on March 27, 2012, 02:27:42 PM
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 ;)

' FULL full range of register i.e. 64 bit,
'
DIM X AS REG_R8, _
       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

You can look at real 64 bit applications written in fasm for information at http://menuetos.net/64bit.htm
Title: Re: X64-Register Table
Post by: Theo Gottwald on March 27, 2012, 06:31:00 PM
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.
Title: Re: X64-Register Table
Post by: Aslan Babakhanov on March 27, 2012, 10:06:56 PM
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.

FASTPROC xx: PREFIX "! "
  push ebp
  mov esp, ebp
  ...
END PREFIX: END FASTPROC


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

FASTPROC xx
  ASM
   push ebp
   mov esp, ebp
  END ASM
END FASTPROC


What do you think?
Title: Re: X64-Register Table
Post by: Theo Gottwald on April 23, 2012, 01:27:42 PM
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.