Czy ktoś może wyjaśnić, co robi następujący kod asemblera? int 0x80
Czy ktoś może wyjaśnić, co robi następujący kod asemblera? int 0x80
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...
Kompilowanie następującego kodu: double getDouble() { double value = 2147483649.0; return value; } int main() { printf("INT_MAX: %u\n", INT_MAX); printf("UINT_MAX: %u\n", UINT_MAX); printf("Double value: %f\n", getDouble()); printf("Direct cast value: %u\n", (unsigned int) getDouble());...
Jestem poza docelowym plikiem wykonywalnym gdb i nie mam nawet stosu, który odpowiadałby temu celowi. I tak chcę zrobić jednoetapowo, aby móc zweryfikować, co się dzieje w moim kodzie asemblera, ponieważ nie jestem ekspertem w montażu x86. Niestety, gdb odmawia wykonania tego prostego...
Co to rep; nopznaczy? Czy to to samo, co pauseinstrukcja? Czy to to samo co rep nop(bez średnika)? Jaka jest różnica w stosunku do prostej nopinstrukcji? Czy zachowuje się inaczej na procesorach AMD i Intel? (bonus) Gdzie jest oficjalna dokumentacja tych instrukcji? Motywacja do tego...
Próbuję dowiedzieć się, czy można uruchomić maszynę wirtualną z systemem Linux, której pamięć RAM jest obsługiwana tylko przez jedną fizyczną stronę. Aby to zasymulować, zmodyfikowałem moduł obsługi błędów zagnieżdżonej strony w KVM, aby usunąć obecny bit ze wszystkich pozycji zagnieżdżonej...
Zauważyłem ciekawą rzecz na moim komputerze. * Odręczny test podzielności jest znacznie szybszy niż %operator. Rozważ minimalny przykład: * AMD Ryzen Threadripper 2990WX, GCC 9.2.0 static int divisible_ui_p(unsigned int m, unsigned int a) { if (m <= a) { if (m == a) { return 1; } return...
Dlaczego gcc wypełnia całą tablicę zerami zamiast tylko pozostałych 96 liczb całkowitych? Wszystkie niezerowe inicjalizatory znajdują się na początku tablicy. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier //...
Na stronie Wikipedii o plikach .COM https://en.wikipedia.org/wiki/COM_file czytamy: Pliki .COM w DOS ustawiają wszystkie rejestry segmentów x86 na tę samą wartość, a rejestr SP (wskaźnik stosu) na 0xFFFE, a zatem stos zaczyna się na samej górze segmentu pamięci i od tego momentu zaczyna...
Dla funkcji, którą piszę, chciałbym zwrócić Nan, jeśli dane wejściowe nie mają sensu. Jak w najprostszy sposób mogę wstawić NaN do rejestru xmm