Pytania otagowane jako assembly

Pytania dotyczące programowania w asemblerze (ASM). UPEWNIJ SIĘ TAKŻE TAGOWAĆ procesor i / lub zestaw instrukcji, z którego korzystasz, a także asembler. OSTRZEŻENIE: W przypadku zestawów .NET użyj zamiast tego znacznika [.net-assembly]. W przypadku Java ASM użyj zamiast tego tagu [java-bytecode-asm].




4
Dlaczego wprowadzenie bezużytecznych instrukcji MOV przyspieszyłoby powstanie ciasnej pętli w zestawie x86_64?
Tło: Podczas optymalizacji kodu Pascal za pomocą wbudowanego języka asemblera zauważyłem niepotrzebną MOVinstrukcję i usunąłem ją. Ku mojemu zaskoczeniu usunięcie niepotrzebnych instrukcji spowodowało spowolnienie programu . Przekonałem się, że dodanie arbitralnych, bezużytecznych MOVinstrukcji jeszcze bardziej zwiększyło wydajność . Efekt jest zmienny, a zmiany oparte na kolejności wykonywania: te same niepotrzebne …

30
Dlaczego programy nie są pisane w asemblerze częściej? [Zamknięte]
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …

24
Ochrona pliku wykonywalnego przed inżynierią wsteczną?
Zastanawiałem się, jak chronić mój kod C / C ++ przed dezasemblacją i inżynierią wsteczną. Zwykle nigdy nie przyzwalam na takie zachowanie w moim kodzie; jednak obecny protokół, nad którym pracuję, nie może być nigdy sprawdzany ani zrozumiały dla bezpieczeństwa różnych osób. Teraz jest to dla mnie nowy temat, a …
210 c++  c  obfuscation  assembly 



7
Pokaż aktualną instrukcję montażu w GDB
Debuguję na poziomie asemblera w GDB. Czy istnieje sposób, aby GDB pokazał mi bieżącą instrukcję montażu w taki sam sposób, jak pokazuje bieżącą linię źródłową? Domyślne wyjście po każdym poleceniu wygląda następująco: 0x0001433f 990 Foo::bar(p); Daje mi to adres bieżącej instrukcji, ale muszę ciągle odwoływać się do wyjścia disassemble, aby …
179 assembly  gdb 

13
Czy num ++ może być atomowe dla „int num”?
Ogólnie rzecz biorąc, for int num, num++(lub ++num), jako operacja odczytu-modyfikacji-zapisu, nie jest atomowa . Ale często widzę kompilatory, na przykład GCC , generują dla niego następujący kod ( spróbuj tutaj ): Ponieważ wiersz 5, który odpowiada, num++jest jedną instrukcją, czy możemy wywnioskować, że w tym przypadku num++ jest atomowa …


1
Dlaczego układy ARM mają instrukcję z Javascriptem w nazwie (FJCVTZS)?
FJCVTZS to „Konwersja zmiennoprzecinkowego kodu JavaScript na stały punkt ze znakiem , zaokrąglanie w kierunku zera”. Jest obsługiwany w układach Arm v8.3-A i nowszych. Co jest dziwne, ponieważ nie spodziewasz się, że JavaScript zobaczysz tak blisko gołego metalu. Potrafię znaleźć wyjaśnienia dotyczące tego, co robi instrukcja, ale nie mogę znaleźć …
148 javascript  assembly  arm 

13
Jak programuje się codzienne maszyny?
W jaki sposób programuje się maszyny codziennego użytku (nie tyle komputery i urządzenia mobilne, ile urządzenia, zegarki cyfrowe itp.)? Jaki kod jest używany do programowania automatu sprzedającego Coca-Cola? W jaki sposób mój ekspres akceptuje zaprogramowany czas i zaczyna parzyć dzbanek kawy kilka godzin później, kiedy ten czas nadejdzie? Czy tego …


7
Jak działa ten exploit milw0rm do rozpylania sterty?
Zwykle nie mam trudności z odczytaniem kodu JavaScript, ale w tym przypadku nie mogę zrozumieć logiki. Kod pochodzi z exploita opublikowanego 4 dni temu. Możesz go znaleźć pod adresem milw0rm . Oto kod: <html> <div id="replace">x</div> <script> // windows/exec - 148 bytes // http://www.metasploit.com // Encoder: x86/shikata_ga_nai // EXITFUNC=process, CMD=calc.exe …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.