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



3
Możliwy błąd GCC podczas zwracania struktury z funkcji
Wydaje mi się, że znalazłem błąd w GCC podczas wdrażania PCN PRNG O'Neilla. ( Kod początkowy w Godbolt's Compiler Explorer ) Po pomnożeniu oldstateprzez MULTIPLIER(wynik przechowywany w rdi), GCC nie dodaje tego wyniku do INCREMENTmovabs'ing INCREMENTzamiast do rdx, który następnie jest wykorzystywany jako wartość zwracana rand32_ret.state Minimalny odtwarzalny przykład ( …
133 c  gcc  assembly  x86-64  compiler-bug 

15
Szybko sprawdzić, czy wartość jest obecna w tablicy C?
Mam wbudowaną aplikację z krytycznym czasowo ISR, który musi iterować przez tablicę o rozmiarze 256 (najlepiej 1024, ale 256 to minimum) i sprawdzić, czy wartość pasuje do zawartości tablic. W takim przypadku boolzostanie ustawiona wartość true. Mikrokontroler to NXP LPC4357, rdzeń ARM Cortex M4, a kompilatorem jest GCC. Mam już …




5
Cel rejestrów ESI i EDI?
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ć przykład?
119 assembly  x86 

3
Dlaczego instrukcje x86-64 w rejestrach 32-bitowych zerują górną część pełnego rejestru 64-bitowego?
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 podstawowej) cytowana w tym samym źródle mówi nam: 64-bitowe operandy generują …

8
`testl` eax przeciwko eax?
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 tego, co ten kod nie jest ważna, po prostu próbuję zrozumieć …

4
Do czego służą dyrektywy CFI w narzędziu Gnu Assembler (GAS)?
Nie wydaje się być dyrektywa .CFI po każdym wierszu, a także nie są szerokie odmian winorośli z tych ex., .cfi_startproc, .cfi_endprocEtc .. więcej tutaj . .file "temp.c" .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 movq %rsp, %rbp .cfi_offset 6, -16 .cfi_def_cfa_register 6 movl $0, …
118 assembly  gas 

9
Jak wyświetlić zestaw za kodem przy użyciu Visual C ++?
Czytałem kolejne pytanie dotyczące wydajności dwóch linii kodu, a OP powiedział, że spojrzał na assembler za kodem i obie linie były identyczne w asemblerze. Pomijając dygresję, jak mógłbym zobaczyć kod asemblera utworzony podczas kompilacji programu. Używam Visual C ++ firmy Microsoft, ale chciałbym również wiedzieć, czy jest możliwe wyświetlenie zestawu …

20
Jak mogę zbudować mały system operacyjny na starym komputerze stacjonarnym? [Zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 4 lata temu . Popraw to pytanie Może to na próżno, ponieważ wiem, że pisanie systemu operacyjnego jest nieznośnie …

6
Dlaczego skalarny parametr sqrt (x) SSE jest wolniejszy niż rsqrt (x) * x?
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 operacji sqrt! Testuję to z pętlą coś takiego: inline float …


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.