An abstract machine having a tape head that can be advanced in 0 to 0xFFFFFFFF increments an unlimited number of times specifies a model of computation that has access to unlimited memory. The technical name for memory addressing based on displacement from the current memory address
is relative addressing.
The abstract model of computation specified by the x86 language already
has access to unlimited memory when we assume the implementation detail
that the underlying memory architecture of this abstract model is
organized as an unlimited sequence of adjacent 4GB blocks.
The x86 language has control flow instructions having {8,16,32} bit
signed offsets to the current EIP (instruction pointer) value. It also
has data access instructions having {8,16,32} bit signed offsets to the
base register.
Signed {8,16,32} bit Jumps relative to EIP
; Jump to the first address of the next 4GB block
FFFFFFF0: E90B000000
Signed {8,16,32} offsets relative to Base Register
; Moves a 32-bit integer from the first address of the next 4GB block
e4: BBFFFFFFFF mov ebx, 0xffffffff
f5: 8B4301 mov eax, dword ptr [ebx+0x1]
Because both the control flow and data access instructions of the x86 language have relative addressing the x86 language specifies an abstract model of computation having access to unlimited memory.
On 8/19/2020 5:06 PM, olcott wrote:
An abstract machine having a tape head that can be advanced in 0 to
0xFFFFFFFF increments an unlimited number of times specifies a model
of computation that has access to unlimited memory. The technical name
for memory addressing based on displacement from the current memory
address is relative addressing.
The abstract model of computation specified by the x86 language
already has access to unlimited memory when we assume the
implementation detail that the underlying memory architecture of this
abstract model is organized as an unlimited sequence of adjacent 4GB
blocks.
The x86 language has control flow instructions having {8,16,32} bit
signed offsets to the current EIP (instruction pointer) value. It also
has data access instructions having {8,16,32} bit signed offsets to
the base register.
Signed {8,16,32} bit Jumps relative to EIP
; Jump to the first address of the next 4GB block
FFFFFFF0: E90B000000
Signed {8,16,32} offsets relative to Base Register
; Moves a 32-bit integer from the first address of the next 4GB block
e4: BBFFFFFFFF mov ebx, 0xffffffff
f5: 8B4301 mov eax, dword ptr [ebx+0x1]
Because both the control flow and data access instructions of the x86
language have relative addressing the x86 language specifies an
abstract model of computation having access to unlimited memory.
I finally explained myself clearly enough to be understood to be
correct. The intuition of the above words were what were in my mind when
I said that these things are blatantly obvious.
Only in the retrospect of this much clearer explanation can it seen that
that what I am proposing really is blantantly obvious.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 285 |
Nodes: | 16 (2 / 14) |
Uptime: | 76:51:54 |
Calls: | 6,489 |
Files: | 12,096 |
Messages: | 5,276,365 |