flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
lazer1 16 Apr 2006, 15:54
for 64 bit long mode,
AMD vol2, 1.3.2 on page 15 says: Quote:
can someone give an example of how this is used? ![]() |
|||
![]() |
|
lazer1 19 Apr 2006, 02:57
Chewy509 wrote: In Long mode, all immediates (when used for addresses) are sign extended 32bit values. do you mean that with the following code it isnt using a 64 bit value for [xyz] ![]() Code: org 123456789ah use 16 ; ..... set up 64 bit .... use64 .... mov [xyz],rbx xyz: dq 1 Quote:
not if you were editting an uncompressed film in VM, are you sure about this? Thomas where are you? ![]() Just when I was starting to think that long mode was good, I think you can hack around this problem like so: Code: mov rax,23456789abh mov [rax],rbx that will give you an absolute address above 32 bits, |
|||
![]() |
|
lazer1 19 Apr 2006, 04:56
Chewy509 wrote: In Long mode, all immediates (when used for addresses) are sign extended 32bit values. ok, I've verified what you've said via fasm, ![]() I assembled the following file: Code: org 1234567887654321 use64 mov [xyz],rbx xyz: db 0 and got the following fasm output: Code: G:\fasm> G:\fasm>fasm test64\address64.asm flat assembler version 1.64 2 passes, 8 bytes. G:\fasm> and the hex looks like this: Code: 0000: 48891D00 00000000 H....... so it is clearly not using absolute 64 bit addressing, ![]() Note that although the x86 MMU implements a lot less than 64 bits that the above is syntactically correct though it wont run as its too big an address, thats a CPU problem not a fasm problem! ![]() |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.