assembly

Dlaczego GCC nie optymalizuje a*A*A*A*A*A do (A*A*A)*(A*A*a)?

Robię pewną optymalizację numeryczną na aplikacji naukowej. Jedną z rzeczy, które zauważyłem jest to, że GCC zoptymalizuje wy ... czbę instrukcji mnożenia do 3. icc ma podobne zachowanie. Dlaczego Kompilatory nie rozpoznają tej sztuczki optymalizacyjnej?

Dlaczego kod C++ do testowania domysłów Collatza działa szybciej niż ręcznie napisany assembly?

Napisałem te dwa rozwiązania dla projektu Euler Q14 , w assembly i w C++. Implementują one identyczne podejście brute force ... avg 200 ms. W związku z tym, że nie jest to możliwe, nie jest to możliwe.]} @Veedrac C++: avg 81 ms z -O3, 305 ms z -O0.

Kod C++ do testowania domysłów Collatza szybciej niż ręcznie pisany assembly-dlaczego?

Napisałem te dwa rozwiązania dla projektu Euler Q14 , W assembly i w C++. Są to identyczne podejście brute force do testowan ... b asm avg 200 ms @hidefromkgb ASM optimized by @ Peter Cordes avg 145 ms @Veedrac C++ avg 81 ms with -O3, 305 ms z -O0

Zastąpienie 32-bitowego licznika pętli 64-bitowym wprowadza szalone odchylenia wydajności

Szukałem najszybszej drogi do popcount dużych tablic danych. Napotkałem bardzo dziwny efekt : Zmiana zmiennej pętli zunsigned ... em pętlę. Więc nawet jeśli rozwiążesz, nadal możesz zostać trafiony przez majora odchylenia wydajności. Całkiem interesujące.

Jak osiągnąć teoretyczne maksimum 4 flopów na cykl?

Jak można osiągnąć teoretyczną maksymalną wydajność 4 operacji zmiennoprzecinkowych (Podwójna precyzja) na cykl na nowoczesny ... ulsd xmm5, xmm3 mulsd xmm1, xmm3 mulsd xmm8, xmm3 addsd xmm10, xmm2 addsd xmm9, xmm2 addsd xmm13, xmm2 ...

Kiedy montaż jest szybszy niż C?

Jednym z podanych powodów poznania asemblera jest to, że czasami może on być użyty do napisania kodu, który będzie bardziej w ... stnieją, ale naprawdę chcę wiedzieć dokładnie, jak Ezoteryczne są te przypadki, ponieważ wydaje się, że jest to punkt sporny.

Czy możliwe jest" dekompilowanie " systemu Windows.exe? Albo chociaż obejrzyj Zgromadzenie?

Mój znajomy pobrał jakieś złośliwe oprogramowanie z Facebook ' a i jestem ciekaw, co robi, nie zarażając się. Wiem, że nie mo ... baczyć go w Assembly lub dołączyć debugger? Edytuj, aby powiedzieć, że nie jest to plik wykonywalny. Net, bez nagłówka CLI.

Dlaczego GCC generuje 15-20% szybszy Kod, jeśli optymalizuję rozmiar zamiast prędkości?

Po raz pierwszy zauważyłem w 2009 roku, że GCC (przynajmniej na moich projektach i na moich maszynach) mają tendencję do gene ... e podane powyżej. Chybienia pamięci podręcznej są bardzo głośne i wykazują niewielką lub zerową korelację z czasem wykonania.

Czym dokładnie jest wskaźnik bazowy i wskaźnik stosu? Do czego zmierzają?

Użycie tego przykładu pochodzącego z Wikipedii, w którym drawsquare wywołuje Drawline (), (zauważ, że ten diagram ma wys ... ach(już zrozumiałem, jak działa prolog, chcę tylko wiedzieć, co się dzieje po wypchnięciu argumentów na stos i przed prolog).

Używanie GCC do tworzenia czytelnego montażu?

Zastanawiałem się, jak użyć GCC na moim pliku źródłowym C, aby zrzucić mnemoniczną wersję kodu maszynowego, aby zobaczyć, w ... nie znaleźć sposobu z GCC. Próbuję ponownie napisać metodę C w assembly i widząc, jak robi to GCC, byłoby to bardzo pomocne.

Jak uzyskać wyjście asemblera ze źródła C / C++ w gcc?

Jak to się robi? Jeśli chcę przeanalizować, jak coś jest kompilowane, jak Mogę uzyskać kod wysyłanego assembly?

Jakie są konwencje wywoływania wywołań systemowych UNIX i Linux (i funkcji przestrzeni użytkownika) na i386 i x86-64

Poniższe linki wyjaśniają konwencje wywołań systemowych x86-32 zarówno dla Uniksa (BSD) jak i Linuksa: Http://www.int80h.o ... en/books/developers-handbook/x86-system-calls.html Ale jakie są konwencje wywołań systemowych x86 - 64 na Unixie i Linuksie?

Pomóż mi zrozumieć ten exploit JavaScript

Zwykle nie mam trudności z odczytaniem skryptu JavaScript, ale ten nie mogę zrozumieć logiki. Kod pochodzi z exploita, który ... dotyczy pętli, dlaczego programista pisz: length < 0xd0000? Chciałbym głębszego zrozumienia, a nie tylko teoria tego kodu.

Jak mogę zbudować mały system operacyjny na starym komputerze stacjonarnym? [zamknięte]

To może być na próżno, ponieważ Wiem, że pisanie systemu operacyjnego jest nieznośnie skomplikowane (zwłaszcza przez samego s ... dzi o zrobienie wszystkiego od zera. Jakieś sugestie jak to zrobić graficznie? Różne tryby wideo i jak z nimi pracować, itp?

Jakie są konwencje wywołujące wywołania systemu UNIX i Linux na i386 i x86-64

Poniższe linki wyjaśniają konwencje wywołań systemowych x86-32 zarówno dla Uniksa (BSD) jak i Linuksa: Http://www.int80h.o ... en/books/developers-handbook/x86-system-calls.html Ale jakie są konwencje wywołań systemowych x86 - 64 na Unixie i Linuksie?

Ochrona pliku wykonywalnego przed inżynierią odwrotną?

Zastanawiałem się, jak chronić mój kod C / C++ przed demontażem i inżynierią odwrotną. Normalnie nigdy nie zaakceptowałbym t ... tkie mogą być obejrzane i / lub rozgryzone przez analityków kodu, biorąc pod uwagę odpowiednie ramy czasowe. Mam coś innego?

Kod montażowy vs kod maszynowy vs Kod obiektowy?

Jaka jest różnica między kodem obiektowym, kodem maszynowym i kodem złożenia? Możesz podać wizualny przykład ich różnicy?

Jak wygląda multicore assembly language?

Dawno, dawno temu, aby napisać na przykład asembler x86, mielibyśmy instrukcje "załaduj rejestr EDX z wartością 5"," zwiększ ... e we wszystkich rdzeniach? Jakie zmiany zostały wprowadzone w kodzie maszynowym x86 w celu obsługi funkcji wielordzeniowych?

Czy inline Assembly language jest wolniejszy niż natywny kod C++?

Próbowałem porównać wydajność języka inline assembly i kodu C++, więc napisałem funkcję, która dodaje dwie tablice o rozmiarz ... zy, że nie powinienem ufać wydajności języka assembly pisanego moimi rękami, skupić się na C++ i zapomnieć o języku assembly?