Независимо от того, сколько памяти вы эмулируете, вам не нужно столько памяти, доступной на хост-машине (вам не нужно 4 ГБ, и вам даже не нужно 4 МБ) ). Вместо этого используйте структуру данных, где вы можете получить доступ к вашей эмулируемой памяти по значению адреса. Выделяйте пространство в вашей реальной памяти только тогда, когда вам нужно что-то сохранить в эмулируемой памяти.
Однако может быть тривиально выделить объем внутренней памяти, описанный выше.
Как и Саймон, я бы сначала предположил теорию «сегмент: смещение», но адрес в диапазоне , который вы перечислили выше, кажется, полностью противоречит этой теории. Кроме того, вся "64" -битная вещь адресного пространства.
Обратите внимание, что большая часть адресного пространства выделена внешним интерфейсам (картриджам и т. Д.), А не внутренним аппаратным ресурсам.