assembly

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.)

Jak usunąć "szum" z wyjścia montażowego GCC/clang?

Chcę sprawdzić wyjście złożenia aplikacji boost::variant w moim kodzie, aby zobaczyć, które wywołania pośrednie są zoptymaliz ... [with T = int]" .ident "GCC: (Ubuntu 5.3.0-3ubuntu1~14.04) 5.3.0 20151204" .section .note.GNU-stack,"",@progbits

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.

Dlaczego ruch warunkowy nie jest podatny na awarię przewidywania gałęzi?

Po przeczytaniu tego postu (odpowiedź na StackOverflow) (w dziale optymalizacja), zastanawiałem się, dlaczego ruchy warunkow ... widzę tego. W chwili, gdy ta instrukcja ASM jest oceniana, wynik poprzedniej instrukcji CMP nie jest jeszcze znany. Dzięki.

Uzyskanie szczytowej przepustowości na Haswell w pamięci podręcznej L1: tylko uzyskanie 62%

[[31]}próbuję uzyskać pełną przepustowość w pamięci podręcznej L1 dla następującej funkcji na procesorach Intela [32]} floa ... 11, 16*unroll cmp r9, rcx jne .L2 sub r8d, 1 jnz .L1 ret

Pisanie własnego BIOSu

Nie jestem szalony, tylko odkrywam koło: d Napisałem boot-loadery, mini-sterowniki myszy i klawiatury, mini OS i tak dalej. ... ego! Czy BIOS jest napisany w assembly? Jak to zrobić? What ' s the mechanizm? Czy mogę zacząć edytować mój aktualny BIOS?

Efektywna funkcja porównywania liczb całkowitych

Funkcja compare jest funkcją, która pobiera dwa argumenty a i b i zwraca liczbę całkowitą opisującą ich kolejność. Jeśli a je ... result; } Czy można to zrobić w mniej niż 6 instrukcjach? Czy istnieje mniej prosty sposób, który jest bardziej skuteczny?

Dlaczego nie ma rejestru zawierającego wyższe bajty EAX?

%AX = (%AH + %AL) Więc dlaczego nie %EAX = (%SOME_REGISTER + %AX) dla jakiegoś rejestru %SOME_REGISTER?

Dobry tutorial NASM / FASM? [zamknięte]

Czy ktoś zna jakieś dobre NASM lub poradniki FASM? Próbuję nauczyć się asemblera, ale nie mogę znaleźć na nim żadnych dobrych zasobów.

Jak działa stos w języku assembly?

Obecnie staram się zrozumieć jak działa stos, więc postanowiłem nauczyć się jakiegoś języka asemblera , używam tej książki: ... estawów układów ma już zaimplementowany stos? Wiem, że to trochę głupie pytanie, ale jestem trochę zdezorientowany przez to.

Bardzo szybka memcpy do przetwarzania obrazów?

Wykonuję przetwarzanie obrazu w języku C, które wymaga kopiowania dużych fragmentów danych wokół pamięci-źródło i miejsce doc ... a jest konieczna, nie mogę obejść konieczności kopiowania danych (mógłbym wyjaśnić dlaczego, ale oszczędzę Ci wyjaśnienia :))

Punkt badania % eax %eax [duplikat]

Możliwy duplikat:x86 Assembly - 'testl' EAX przeciwko eax? Jestem bardzo nowy w programowaniu w języku asemblera i o ... acji nie skoczylibyśmy? Jestem początkującym programistą w ogóle, więc byłbym wdzięczny, gdyby ktoś mi to wyjaśnił. Dzięki!

Prefetching Przykłady?

Czy ktoś może podać przykład lub link do przykładu, który używa __builtin_prefetch w GCC (lub po prostu instrukcji ASM prefet ... y, chcę najkrótszy przykład pokazujący __builtin_prefetch wykonywanie optymalizacji, która nie może być zarządzana bez niego.

VA (adres wirtualny) & RVA (względny adres wirtualny)

Plik podany jako wejście do linkera nazywa się plikiem obiektowym. Linker tworzy plik obrazu , który z kolei jest uży ... 0x00000 Program peview uruchamia to z 0x1000. Nie mogę zrozumieć, dlaczego trzecia obserwacja. Nie potrafię tego wyjaśnić.

Jaki jest cel kodu opcode CIL nop?

Przeglądam MSIL i zauważam, że w MSIL jest dużo instrukcji nop. Artykuł MSDN mówi, że nie podejmują żadnych działań i są uży ... redaktora: akceptowana odpowiedź dotyczy NoPS w kodzie maszynowym, a nie MSIL/CIL NoPS, o którym pierwotnie zadano pytanie.)

Czy warto uczyć się języka asemblera? [zamknięte]

Czy nadal warto uczyć się ASM ? Wiem trochę o tym, ale tak naprawdę nie używałem go ani nie nauczyłem się go poprawnie, pon ... gramistą? Uwaga: mówię o montażu niskopoziomowym jak FASM lub NASM a nie coś w rodzaju HLA (asembler wysokiego poziomu).

Do czego przeznaczony jest rejestr "FS"/"GS"?

Więc wiem jakie powinny być następujące rejestry i ich zastosowania: CS = Segment kodu (używany dla IP) DS = Segment d ... a: jestem Nie pytam o jakiś konkretny system operacyjny -- pytam o to, do czego miał być używany przez procesor, jeśli już.

Ograniczenia składni zespołu Intela w porównaniu do AT & T [zamknięte]

Dla mnie składnia Intela jest znacznie łatwiejsza do odczytania. Jeśli przejdę przez assembly forest koncentrując się tylko n ... yślnie używa AT & T. Jeśli to ma znaczenie, skupiam się tylko na dowolnej relacji i składni do Linuksa / BSD i języka C.

Różnica między rdtscp, rdtsc: pamięć i cpuid / rdtsc?

Załóżmy, że próbujemy użyć tsc do monitorowania wydajności i chcemy zapobiec zmianie kolejności instrukcji. Oto nasze opcje: ... ry" wygląda znacznie prostiej niż użycie innej instrukcji serializującej. Dlaczego ktoś miałby użyć opcji 3 zamiast opcji 2?

Jak skompilować asm wygenerowany przez GCC?

Bawię się jakimś kodem asm i coś mnie niepokoi. Kompiluję to: #include <stdio.h> int main(int argc, char** argv){ ... via_symbols Moim następnym problemem jest naprawdę, jak skompilować to wyjście i czy mogę sprawić, że GCC zrobi to za mnie?