x86

Jaki jest cel rejestru wskaźników ramek EBP?

Jestem początkujący w języku asemblera i zauważyłem, że kod x86 emitowany przez kompilatory zwykle utrzymuje wskaźnik ramki w ... dla mnie to nie ma sensu. Dlaczego pominięcie wskaźnika ramki jest uważane za zły pomysł nawet w optimized / release builds?

Jak zdemontować kod raw x86?

Chciałbym zdemontować MBR (pierwsze 512 bajtów) bootowalnego dysku x86, który mam. Skopiowałem MBR do pliku używając dd if=/dev/my-device of=mbr bs=512 count=1 Jakieś sugestie dotyczące linuksowego narzędzia, które może zdemontować plik mbr?

Jak napisać disassembler? [zamknięte]

Jestem zainteresowany napisaniem dissemblera x86 jako projektu edukacyjnego. Jedynym realnym zasobem, który znalazłem jest ... odstawowe linki do disassemblera itp. Czy ktoś może wskazać mi jakieś szczegółowe zasoby na temat pisania disassemblera x86?

montaż x86 na Macu

Czy ktoś zna jakieś dobre narzędzia (Szukam IDE) do pisania assembly na Macu. Xcode jest dla mnie trochę kłopotliwe. Również ... lowanym środowisku stworzonym przez OS, aby Kod myślał, że działa na własnej dedykowanej maszynie. Czy OS X zapewnia to samo?

Użycie gdb do jednostopniowego kodu montażowego poza podanym plikiem wykonywalnym powoduje błąd " nie można znaleźć granic bieżącej funkcji"

Jestem poza programem wykonywalnym gdb i nie mam nawet stosu odpowiadającego temu celowi. I tak chcę zrobić jednoetapowy kro ... ozmiar instrukcji montażu x86 jest różny, a lokalizacja zespołu zmieni się za każdym razem, gdy ponownie uruchomię komputer.)

Jaka jest twoja ulubiona sztuczka przeciw debugowaniu?

U mojego poprzedniego pracodawcy użyliśmy komponentu strony trzeciej, który w zasadzie był tylko DLL i plik nagłówkowy. Ten k ... omiÄ ™ dzy niektórymi wywoĹ' anami w DLL. Moje pytanie do SO brzmi: Jaka jest twoja ulubiona sztuczka przeciw debugowaniu?

Jak napisać własny kod modyfikujący w x86 assembly

Szukam kompilatora JIT dla hobbystycznej maszyny wirtualnej, nad którą ostatnio pracowałem. Znam się trochę na montażu (Jeste ... re wystarczająco by to zademonstrowały? Używam NASM jako mojego asemblera. EDIT: ja również uruchamiam ten kod na Linuksie.

Pierwsze kroki z instrukcjami Intel X86 SSE SIMD

Chcę dowiedzieć się więcej o używaniu SSE . Czego można się nauczyć, poza oczywistym czytaniem podręczników programisty Architektur Intel® 64 i IA-32 ? Głównie interesuje mnie praca z wbudowanymi funkcjami GCC X86.

Jaka jest różnica między MOV a LEA?

Chciałbym wiedzieć, jaka jest różnica między tymi instrukcjami: MOV AX, [TABLE-ADDR] I LEA AX, [TABLE-ADDR]

Jakie jest znaczenie "non temporal" dostępu do pamięci w x86

Jest to pytanie nieco na niskim poziomie. W zestawie x86 znajdują się dwie instrukcje SSE: MOVDQA xmmi, m128 I M ... NT w movntdqa oznacza Non-Temporal, a poza tym jest to to samo co MOVDQA. Moje pytanie brzmi, co oznacza nie-czasowy ?

Co oznacza "int 0x80" w kodzie assembly?

Może ktoś wyjaśnić co robi poniższy kod asemblera? int 0x80

Dlaczego Skalar SSE sqrt(x) jest wolniejszy niż rsqrt(x) * x?

Profilowałem część naszej podstawowej matematyki na Intel Core Duo i patrząc na różne podejścia do pierwiastka kwadratowego z ... elów testowych: to, co naprawdę próbuję zmierzyć, to wydajność Skalar do użycia w kodzie, który nie może być wektoryzowany.)

Dlaczego integer overflow na x86 z GCC powoduje nieskończoną pętlę?

Poniższy kod przechodzi do nieskończonej pętli na GCC: #include <iostream> using namespace std; int main(){ int ... movq %rbx, %rdi addl $1, %r12d call _ZNSo3putEc movq %rax, %rdi call _ZNSo5flushEv cmpl $3, %r12d jne .L5

Jak napisać hello world w asemblerze pod Windows?

Chciałem napisać coś podstawowego w assembly pod Windows, używam NASM, ale nic nie działa. Jak napisać i skompilować hello world bez pomocy funkcji C w systemie Windows?

Czy jest sens używać instrukcji LFENCE na procesorach x86/x86 64?

Często w Internecie stwierdzam, że LFENCE nie ma sensu w procesorach x86, czyli nic nie robi, więc zamiast {[3] } możemy abso ... ENCE ma sens, aby zapobiec zmianie kolejności STORE-1 I LOAD-2. W tym celu po komendzie STORE-1 SFENCE spłukuje Store-Buffer.

Dlaczego Intel ukrywa wewnętrzny Rdzeń RISC w swoich procesorach?

Począwszy od Pentium Pro (mikroarchitektura P6), Intel przeprojektował swoje mikroprocesory i użył wewnętrznego rdzenia RISC ... prawda?). Patrząc na nową serię Intel 'Core i' widzę, że tylko rozszerzają zestaw instrukcji CISC dodając AVX, SSE4 i inne.

Aby nauczyć się montażu-powinienem zacząć od 32 bitów czy 64 bitów?

Naprawdę chcę się nauczyć montażu. Jestem całkiem dobry w c / C++, ale chcę lepiej zrozumieć, co się dzieje na niższym poziom ... ektórym z nich, aby zacząć myśleć o tym, jak działają procesory i dlaczego możesz zrobić coś w jeden sposób, a nie w inny.)

Google maps SDK z nowym emulatorem Intel Atom x86

Czy Jest jakiś sposób, jak uzyskać nowy obraz x86 dla emulatora Androida pracującego z Google Maps SDK?

Czy można powiedzieć predyktorowi gałęzi, jak prawdopodobne jest podążanie za gałęzią?

Żeby było jasne, Nie będę się starał o jakąkolwiek przenośność, więc wszelkie rozwiązania, które przywiążą mnie do określoneg ... ywając GCC 4.1.2 i ISA x86, jeśli ma to znaczenie), aby powiedzieć predyktorowi gałęzi, że powinien buforować dla tej gałęzi?

Montaż-JG/JNLE/JL / jnge po CMP

Nie rozumiem JG/JNLE/JL/JNGE instrukcji, które przychodzą po CMP. Na przykład, jeśli mam: CMP al,dl jg label1 Kiedy al=1 ... miem, co porównujemy, a na co pytamy " jg". Innymi słowy, nie rozumiem, kiedy przejdziemy do label1, a kiedy nie.]} Dzięki.