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

1
Go nie łączy mojego zestawu: niezdefiniowana funkcja zewnętrzna
Próbuję napisać trochę SIMD głównie do celów edukacyjnych. Wiem, że Go może łączyć zestaw, ale nie mogę sprawić, by działał poprawnie. Oto najbardziej minimalny przykład, jaki mogę zrobić (mnożenie wektorów według elementów): vec_amd64.s (uwaga: rzeczywisty plik ma białą linię pod spacją, RETponieważ w przeciwnym razie powoduje błędy) // func mul(v1, …
82 assembly  go 


3
Dlaczego pad GCC działa z NOP?
Pracuję z C przez krótki czas i bardzo niedawno zacząłem zajmować się ASM. Kiedy kompiluję program: int main(void) { int a = 0; a += 1; return 0; } Demontaż objdump ma kod, ale nops po ret: ... 08048394 <main>: 8048394: 55 push %ebp 8048395: 89 e5 mov %esp,%ebp 8048397: …
81 c  gcc  assembly 

1
Czy instrukcje x86 wymagają własnego kodowania, a także wszystkich argumentów znajdujących się w pamięci w tym samym czasie?
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 tablicy stron (NPT), oprócz tego odpowiadającego aktualnie przetwarzanej usterce strony. …

1
Dlaczego GCC inicjuje agregację tablicy najpierw wypełniając całość zerami, w tym elementami niezerowymi?
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 // forces the compiler to materialize a[] in memory …





2
Czy moduł wstępny L2 HW jest naprawdę pomocny?
Jestem na Whisky Lake i7-8565U i analizuję liczniki perf oraz czas na skopiowanie 512 KiB danych (dwa razy więcej niż rozmiar pamięci podręcznej L2) i napotkałem pewne nieporozumienia dotyczące pracy modułu pobierania wstępnego L2 HW. W Intel Manual Vol.4 MSR jest MSR, 0x1A4którego bit 0 służy do kontrolowania modułu wstępnego …

2
Czy nowoczesny sprzęt wideo na PC obsługuje tryb tekstowy VGA w HW, czy też BIOS go emuluje (w trybie zarządzania systemem)?
Co tak naprawdę dzieje się na nowoczesnym sprzęcie komputerowym uruchomionym w 16-bitowym starszym trybie BIOS MBR, gdy zapisujesz bajt taki jak '1'(0x31) w buforze ramki tekstu VGA (tryb 03) pod fizycznym adresem liniowym B8000? Jak wolno mov [es:di], eaxsklep z MTRR dla tego regionu jest ustawiony na UC? ( Testy …


2
Co powoduje tak dużą zmienność w cyklach dla prostej ciasnej pętli z -O0, ale nie -O3, na Cortex-A72?
Przeprowadzam eksperymenty, aby uzyskać bardzo spójne środowiska wykonawcze dla fragmentu kodu. Kod, który aktualnie sprawdzam, jest dość arbitralnym obciążeniem procesora: int cpu_workload_external_O3(){ int x = 0; for(int ind = 0; ind < 12349560; ind++){ x = ((x ^ 0x123) + x * 3) % 123456; } return x; } Napisałem …
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.