Piszę kompilatora dla instrukcji procesorów x86/x64, a ja nie potrafię zrozumieć, co ludzie mają na myśli przez adres „przemieszczenia”. Na przykład instrukcja Add jest szczegółowo tutaj: http://www.c-jump.com/CIS77/CPU/x86/X77_0150_encoding_add_edx_displacement.htmx86/x64 Dodaj Przesunięcie adresowania
Po prostu próbuję wdrożyć instrukcję add, gdzie rejestr jest dodawany do normalnego adresu pamięci. Problem polega na tym, że adres jest "adresem przemieszczenia". Czy to oznacza, że adres jest wartością podpisaną, która jest przesunięciem od lokalizacji instrukcji?
Czy generujesz kod zespołu? Nie możesz wygenerować kodu C lub użyć LLVM? Lub emitować kod maszynowy za pomocą http://code.google.com/p/asmjit/ lub innych bibliotek? Czy dobrze rozumiesz zestaw instrukcji x86/64? Czy studiowałeś http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html –