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

10
Dlaczego x86 jest brzydki? Dlaczego jest uważany za gorszy w porównaniu z innymi? [Zamknięte]
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 pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …


7
Jak dokładnie działa stos wywołań?
Staram się uzyskać głębsze zrozumienie tego, jak działają operacje niskiego poziomu języków programowania, a zwłaszcza jak współdziałają z systemem operacyjnym / procesorem. Prawdopodobnie przeczytałem każdą odpowiedź w każdym wątku związanym ze stosem / stertą w Stack Overflow i wszystkie są genialne. Ale jest jeszcze jedna rzecz, której jeszcze nie w …



23
Zestaw szkoleniowy [zamknięty]
Zamknięte . To pytanie jest oparte na opinii . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 3 lata temu . Popraw to pytanie Postanowiłem nauczyć się języka asemblera. Głównym powodem jest zrozumienie zdemontowanego …
102 assembly 

3
Jak można zobaczyć zawartość stosu za pomocą GDB?
Jestem nowy w GDB, więc mam kilka pytań: Jak mogę sprawdzić zawartość stosu? Przykład: aby zobaczyć zawartość rejestru, wpisuję info registers. Co to powinno być w przypadku stosu? Jak mogę zobaczyć zawartość $0x4(%esp)? Kiedy piszę print /d $0x4(%esp), GDB wyświetla błąd. Platforma: Linux i GDB
101 c  assembly  gdb 

2
Jak przerwać instrukcję asemblera pod podanym adresem w gdb?
0x0000000000400448 <main+0>: push %rbp 0x0000000000400449 <main+1>: mov %rsp,%rbp 0x000000000040044c <main+4>: mov $0x6,%eax 0x0000000000400451 <main+9>: leaveq 0x0000000000400452 <main+10>: retq Próbowałem: breaki 0x0000000000400448 ale wydaje się, że nie ma takiego polecenia. Czy gdb ma taką funkcję?
99 assembly  gdb 


14
Jaka jest różnica między słowem a bajtem?
Zrobiłem trochę badań. Bajt to 8 bitów, a słowo jest najmniejszą jednostką, którą można zaadresować w pamięci. Dokładna długość słowa jest różna. Czego nie rozumiem, jaki jest sens posiadania bajtu? Dlaczego nie powiedzieć 8 bitów? Zadałem to pytanie profesorowi, który powiedział, że większość dzisiejszych maszyn jest adresowana bajtowo, ale co …

5
Jaki jest cel rejestru wskaźnika ramki EBP?
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ć niezbędny, jeśli alloca()zostanie wywołany w funkcji. Jednak x86 ma …


8
Co jest szybsze: if (bool) czy if (int)?
Której wartości lepiej użyć? Wartość logiczna prawda czy liczba całkowita 1? Powyższy temat mnie zrobić kilka eksperymentów z booli intw ifstanie. Tak więc z ciekawości napisałem ten program: int f(int i) { if ( i ) return 99; //if(int) else return -99; } int g(bool b) { if ( b …
94 c++  assembly  int  boolean 



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.