Address space Limitations of the AMD64/Intel64

Started by PabloMack, July 31, 2019, 03:45:01 pm

Previous topic - Next topic

PabloMack

August 07, 2019, 05:24:49 pm #30 Last Edit: August 09, 2019, 11:29:05 am by PabloMack
Quote from: WASasquatch on August 04, 2019, 03:56:08 pmI'm curious, you're a assembly developer? Couldn't you just demonstrate this 2GB limitation with some 4GB asset in a single process calling for 4GB call and attempting to cache it safely in RAM?
The program you suggest won't even get far enough to run because the image is so large that it will fail to link. But, just for grins, I decided to do a test just for you.  I created a test assembly program and put in 1000 instances of a line that creates 4MB of data (each):

      jmp Here
      db 1024*1024*4 dup('w') ;1000 times
      ...
Here:

The program ostensibly tries to jump over this large block to make sure that the offset will be a span that is that large. But just as I suspected, it failed to link because the image is too large. So it will not run because it will not load and it will not load because it will not link.