Запитання з тегом «assembly»

Питання програмування мови (асм). ОБОВ'ЯЗКОВО ТАКОЖ ТАКОЖ ТАГО з набором процесора та / або інструкцій, який ви використовуєте, а також з асемблером. ПОПЕРЕДЖЕННЯ. Для збірок .NET використовуйте замість тегу [.net-Assembly]. Для Java ASM використовуйте замість тегу [java-bytecode-asm].

1
Чому компілятори наполягають на використанні тут збереженого регістру?
Розглянемо цей код C: void foo(void); long bar(long x) { foo(); return x; } Коли я компілюю його на GCC 9.3 з будь-яким -O3або -Os, я отримую це: bar: push r12 mov r12, rdi call foo mov rax, r12 pop r12 ret Вихід з clang ідентичний за винятком вибору rbxзамість …
10 c  gcc  assembly  clang  x86-64 

1
Чому DOS встановлює реєстр SP на 0xFFFE після завантаження файлу .COM?
На сторінці вікіпедії про файли .COM https://en.wikipedia.org/wiki/COM_file воно гласить: Файли .COM в DOS встановлюють всі регістри сегментів x86 на однакове значення, а SP (покажчик стека) реєструють 0xFFFE, таким чином стек починається в самому верху сегмента пам'яті і працює звідти. Але це фактично встановлює стек починати одним словом внизу верхньої частини …

2
Чи справді корисний префетер L2 HW?
Я перебуваю на Whiskey Lake i7-8565U і аналізую лічильники перф і час для копіювання 512 Кб даних (вдвічі більше, ніж розмір кешу L2) і зіткнувся з деяким непорозумінням щодо роботи префедера L2 HW. У посібнику з Intel Vol.4 MSR є MSR, 0x1A4біт 0 є для керування префедером L2 HW (1 …

2
Чи підтримує сучасне відео відеообладнання для ПК текстовий режим VGA у HW, чи BIOS емулює його (у режимі управління системою)?
Що насправді відбувається на сучасному комп'ютерному апаратному забезпеченні, завантаженому в 16-бітному застарілому режимі BIOS MBR, коли ви зберігаєте байт, такий як '1'(0x31) у кадрі буфера тексту VGA (режим 03) за фізичною лінійною адресою B8000? Наскільки повільним є mov [es:di], eaxмагазин з MTRR для цього регіону на рівні UC? ( Експериментальне …


2
Що обумовлює цю велику мінливість циклів для простого тугого циклу з -00, але не -O3, на Cortex-A72?
Я проводжу кілька експериментів, щоб отримати дуже послідовний час виконання для фрагмента коду. Код, який я зараз призначаю, є досить довільним навантаженням на процесор: int cpu_workload_external_O3(){ int x = 0; for(int ind = 0; ind < 12349560; ind++){ x = ((x ^ 0x123) + x * 3) % 123456; } …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.