Czy ktoś mógłby wyjaśnić, co to oznacza? (Składnia Intel, x86, Windows) and dword ptr [ebp-4],
Czy ktoś mógłby wyjaśnić, co to oznacza? (Składnia Intel, x86, Windows) and dword ptr [ebp-4],
To jest pytanie niskiego poziomu. W asemblerze x86 są dwie instrukcje SSE: MOVDQA xmmi, m128 i MOVNTDQA xmmi, m128 Podręcznik programisty IA-32 mówi, że NT w MOVNTDQA oznacza Non-Temporal , a poza tym to to samo, co MOVDQA. Moje pytanie brzmi: co to znaczy Non-Temporal ?...
Wszystkie poniższe instrukcje robią to samo: ustawiają %eaxna zero. Który sposób jest optymalny (wymagający najmniejszej liczby cykli maszyny)? xorl %eax, %eax mov $0, %eax andl $0,
W x86-64 Tour Intel Podręczniki , czytam Być może najbardziej zaskakującym faktem jest to, że instrukcja taka jak MOV EAX, EBXautomatycznie zeruje górne 32 bity RAXrejestru. Dokumentacja firmy Intel (3.4.1.1 Rejestry ogólnego przeznaczenia w trybie 64-bitowym w ręcznej architekturze...
Jaki jest rzeczywisty cel i zastosowanie rejestrów EDI i ESI w asemblerze? Wiem, że są używane do operacji na łańcuchach z jednego powodu. Czy ktoś może też podać
Próbuję zrozumieć jakiś montaż. Montaż jak następuje, interesuje mnie testllinia: 000319df 8b4508 movl 0x08(%ebp), %eax 000319e2 8b4004 movl 0x04(%eax), %eax 000319e5 85c0 testl %eax, %eax 000319e7 7407 je 0x000319f0 Próbuję zrozumieć ten punkt testlpomiędzy %eaxi %eax? Myślę, że specyfika...
Wczoraj zainstalowałem Ubuntu 14.04 (Trusty Tahr). Wszystko wydaje się w porządku. Ale kiedy próbowałem skompilować kod C, napotykam następujący błąd. Wydaje się, że błąd jest spowodowany brakiem obsługi architektury 32-bitowej przez system operacyjny. Wynik błędu jest następujący: /usr/bin/ld:...
Profilowałem część naszej podstawowej matematyki na Intel Core Duo i patrząc na różne podejścia do pierwiastka kwadratowego zauważyłem coś dziwnego: używając operacji skalarnych SSE, szybciej jest wziąć odwrotność pierwiastka kwadratowego i pomnożyć go aby uzyskać sqrt, niż użyć natywnego kodu...
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to...
Czytając o assemblerze często spotykam ludzi, którzy piszą, że wciskają pewien rejestr procesora, a później ponownie go wyskakują , aby przywrócić jego poprzedni stan. Jak możesz pushować rejestr? Gdzie jest popychany? Dlaczego jest to potrzebne? Czy sprowadza się to do pojedynczej instrukcji...
Próbuję zainstalować usługę systemu Windows przy użyciu programu InstallUtil.exe i pojawia się komunikat o błędzie System.BadImageFormatException: nie można załadować pliku lub zestawu „ {xxx.exe}” lub jednej z jego zależności. Podjęto próbę załadowania programu o nieprawidłowym formacie. Co...
Wiem więc, jakie mają być następujące rejestry i ich zastosowania: CS = Segment kodu (używany dla IP) DS = Segment danych (używany dla MOV) ES = Segment docelowy (używany w przypadku MOVS itp.) SS = Segment stosu (używany dla SP) Ale do czego służą poniższe rejestry? FS = "Segment...
Kilka pytań dotyczących pierścieni uprawnień procesora x86: Dlaczego większość systemów operacyjnych nie używa pierścieni 1 i 2? Czy chodzi tylko o zachowanie zgodności kodu z innymi architekturami, czy jest lepszy powód? Czy są jakieś systemy operacyjne, które faktycznie używają tych pierścieni?...
Wykonuję pewne prace krytyczne dla wydajności w C ++ i obecnie używamy obliczeń całkowitych do problemów, które są z natury zmiennoprzecinkowe, ponieważ „jest szybsze”. Powoduje to wiele irytujących problemów i dodaje dużo irytującego kodu. Pamiętam, jak czytałem o tym, jak obliczenia...
Jestem początkującym w języku asemblera i zauważyłem, że kod x86 emitowany przez kompilatory zwykle utrzymuje wskaźnik ramki nawet w trybie zwolnienia / optymalizacji, kiedy mógłby użyć EBPrejestru do czegoś innego. Rozumiem, dlaczego wskaźnik ramki może ułatwić debugowanie kodu i może być...
Chciałem napisać coś podstawowego w asemblerze pod Windows, używam NASM, ale nic nie działa. Jak pisać i kompilować Hello World bez pomocy funkcji C w systemie Windows?
Chciałbym zdemontować MBR (pierwsze 512 bajtów) z bootowalnego dysku x86, który mam. Skopiowałem MBR do pliku za pomocą dd if=/dev/my-device of=mbr bs=512 count=1 Jakieś sugestie dotyczące narzędzia Linux, które może zdemontować plik mbr?
To pytanie ma wypełnić próżnię dobrych, bezpłatnych informacji na ten temat. Uważam, że dobra odpowiedź będzie pasować do jednej dużej odpowiedzi TAK lub przynajmniej do kilku odpowiedzi. Głównym celem jest dostarczenie początkującym użytkownikom wystarczającej ilości informacji, aby mogli...
Czy ktoś może wyjaśnić, co robi następujący kod asemblera? int 0x80
Począwszy od Pentium Pro (mikroarchitektura P6), Intel przeprojektował swoje mikroprocesory i użył wewnętrznego rdzenia RISC zgodnie ze starymi instrukcjami CISC. Od Pentium Pro wszystkie instrukcje CISC są dzielone na mniejsze części (ups), a następnie wykonywane przez rdzeń RISC. Na początku...