assembly

Czy Kompilatory języka programowania tłumaczą najpierw na assembly czy bezpośrednio na kod maszynowy?

Interesują mnie przede wszystkim popularne i szeroko stosowane Kompilatory, takie jak gcc. Ale jeśli rzeczy są robione inacze ... zystkie programy są napisane dla Linuksa.) Byłabym bardzo wdzięczna za wszelką pomoc i przemyślenia w tej sprawie. Dziękuję!

Czy jest możliwe tworzenie wątków bez wywołań systemowych w Linuksie x86?

Podczas nauki "języka asemblera" (w Linuksie na architekturze x86 używającym GNU jako asemblera), jednym z momentów aha była ... jest, czy masz sugestię (a nawet lepiej: jakiś prawdziwy kod), aby implementować wątki tak efektywnie, jak to tylko możliwe?

Dlaczego ten program C++ jest tak niewiarygodnie szybki?

Napisałem mały benchmark, aby porównać wydajność różnych interpreterów / kompilatorów dla Pythona, Ruby, JavaScript i C++. Zg ... ,1,1 .hidden __dso_handle .ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2" .section .note.GNU-stack,"",@progbits

Co jest szybsze: if (bool) czy if (int)?

Która wartość jest lepsza do wykorzystania? Logiczna prawda czy liczba całkowita 1? Powyższy temat zmusił mnie do zrobie ... eć. znacznik optymalizacji -O2 generuje dokładnie taki sam asm. Ale to nie jest pytanie. Pytanie jest takie, jakie zadałem.

Najszybszy sposób obliczenia 128-bitowej liczby całkowitej modulo 64-bitowej liczby całkowitej

Mam 128-bitową niepodpisaną liczbę całkowitą A i 64-bitową niepodpisaną liczbę całkowitą B. jaki jest najszybszy sposób oblic ... różni się tak często jak A - może być aż 200, aby podzielić przez każde B. jak różniłaby się Twoja odpowiedź w tym przypadku?

Jak działa sanki NOP?

Nie mogę znaleźć dobrego źródła, które odpowie na to pytanie. Wiem, że sanie nop to technika używana do obejścia randomizacji ... , jak to działa. Jaki jest prosty przykład, który ilustruje tę metodę? Co oznaczają terminy takie jak 128-bajtowy NOP sled?

Jak zdemontować binarny plik wykonywalny w Linuksie, aby uzyskać kod asemblera?

Kazano mi użyć demontażu. Czy gcc ma coś wbudowanego? Jak najłatwiej to zrobić?

Etykiety w GCC inline assembly

W moich trwających eksperymentach z GCC inline assembly, napotkałem nowy problem dotyczący etykiet i wbudowanego kodu. Rozwa ... y, ale w czasie uruchomienia po prostu wywołał błąd segmentacji. Hmm... Więc wszelkie sugestie, podpowiedzi, odpowiedzi...?

ret, retn, retf - jak ich używać

Mam następujący kod asm: ; int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShow ... do pop, od zdefiniowanych zmiennych. Kiedy należy używać retn lub retf zamiast ret? Jak obliczyć opcjonalny parametr, nBytes?

Czy możliwe jest wykonanie sekwencji montażu x86 z poziomu C#?

Kontynuując moją edukację w zakresie inżynierii odwrotnej, często chciałem móc skopiować fragmenty kodu zestawu x86 i nazwać ... da się to zrobić w C#? Uwaga: nie mówię o wykonywaniu instrukcji MSIL. Mówię o wykonaniu serii raw x86 assembly instrukcje.

Jakie rejestry są zachowywane przez wywołanie funkcji linux x86-64

Wierzę, że rozumiem, jak linux x86-64 ABI używa rejestrów i stosu do przekazywania parametrów do funkcji (por. poprzednia dys ... to, czy / co rejestry mają być zachowane w całym wywołaniu funkcji. Czyli jakie rejestry gwarantują, że nie zostaną oberwane?

Jak zaimplementowana jest synchronizacja wątków na poziomie języka asemblacji?

Chociaż znam koncepcje programowania współbieżnego, takie jak muteksy i semafory, nigdy nie rozumiałem, jak są one implemento ... e wait mov [lock], edx ; I wanted an exclusive lock but the above ; three instructions are not an atomic operation :(

Dlaczego instrukcje x86 - 64 dotyczące rejestrów 32-bitowych zerują górną część pełnego rejestru 64-bitowego?

Wx86-64 Tour podręczników Intela przeczytałem Być może najbardziej zaskakującym faktem jest to, że instrukcja taka jak ... zone? Na pierwszy rzut oka wydaje się to nielogiczne (ale może dlatego, że jestem przyzwyczajony do dziwactw montażu x86-32).

LEA czy dodaj instrukcję?

Kiedy piszę pismo, zazwyczaj wybieram formę lea eax, [eax+4] Nad formularzem.. add eax, 4 Słyszałem, że Lea jest instr ... rochę światła na to, który z nich jest lepszy? Który jest szybszy? Dlaczego kompilator wybiera drugą formę zamiast pierwszej?

Używanie języka Assembly W C / C++

Pamiętam, że gdzieś czytałem, że aby naprawdę zoptymalizować i przyspieszyć pewną część kodu, Programiści piszą tę sekcję w j ... lera, Twój kod będzie prawdopodobnie działał wolniej, ponieważ często kompilator optymalizuje kod lepszy niż większość ludzi.

Linux Shellcode " Hello, World!"

Mam następujący działający kod NASM: global _start section .text _start: mov eax, 0x4 mov ebx, 0x1 mov ecx, m ... uchamiam kod, wydaje się, że kod asemblera nie jest wykonywany, ale program kończy pracę w porządku. Jakieś pomysły? Dzięki

Jaki jest najlepszy sposób na naukę montażu x86 na platformie Linux? [zamknięte]

Nie znam się wcześniej na programowaniu assembly i chciałbym się nauczyć jak kodować assembly x86 na platformie Linux. Jednak ... ISC mają lepsze zasoby do montażu, ale niestety nie mam procesora RISC, z którym mogę się uczyć. Czy ktoś ma jakieś sugestie?

Jak wygenerować kompilowalny kod asemblera nasm z kodu źródłowego c na Linuksie?

Platformą testową jest 32-bitowy Linux. Zasadniczo wiem, że gcc może być używany do generowania zarówno stylu Intela, jak i ... eć o wiele łatwiejsze czas... Więc moje pytanie brzmi jak wygenerować kod kompilowalny nasm z kodu źródłowego c na Linuksie?

Zapis bootloadera w C

Jestem nowicjuszem w pisaniu bootloaderów. Napisałem bootloader helloworld w asm i Próbuję teraz napisać jeden w C. napisałem ... urn 0; } void print_char(){ __asm__( "mov $0X0E, %AH;" "mov $0x00, %BH;" "mov $0x04, %BL;" "int $0x10" ); }

Czy jest sposób na wstawienie kodu asemblera do C?

Pamiętam jak kiedyś ze starym kompilatorem Borland DOS można było zrobić coś takiego: asm { mov ax,ex etc etc... } Czy ... zebę wykonania połączenia z BIOSem, więc jeśli byłby sposób, aby to zrobić bez kodu asm, byłoby to dla mnie równie przydatne.