Результаты поиска по запросу "assembly"

1 ответ

Что произойдет, если вы используете 32-битный int 0x80 Linux ABI в 64-битном коде?

int 0x80 в Linux всегда вызывает 32-битный ABI, независимо от того, из какого режима он вызывается: args inebx, ecx, ... и номера системных звонков от/usr/include/asm/unistd_32.h. (Или вылетает на 64-битных ядрах, скомпилированных ...

2 ответа

ожет ли MOV x86 быть «бесплатным»? Почему я не могу воспроизвести это вообще?

Я продолжаю видеть, как люди утверждают, что инструкция MOV может быть бесплатной в x86 из-за переименования регистров. Для жизни я не могу проверить это ни в одном тестовом случае. Каждый тестовый пример, который я пробую, разоблачает это. ...

1 ответ

Почему циклы всегда компилируются в стиле «do… while» (прыжок с хвоста)?

Когда я пытаюсь понять сборку (с включенной оптимизацией компилятора), я вижу это поведение: Очень простой цикл, подобный этому outside_loop; while (condition) { statements; } Часто компилируется в (псевдокод) ; outside_loop jmp ...

ТОП публикаций

3 ответа

OsDev syscall / sysret и sysenter / sysexit инструкции по включению

Я собираю 32-битную ОС в сборке. Я установил IDT и обрабатываю прерывание программы черезint инструкция. Как я могу включитьsyscall а такжеsysenter инструкции и как мне их обработать / вернуть? Это правда, чтоsyscallнструкция @ не ...

4 ответа

Что делает cltq в сборке?

0x0000000000400553 <main+59>: mov -0x4(%rbp),%eax 0x0000000000400556 <main+62>: cltq 0x0000000000400558 <main+64>: shl $0x3,%rax 0x000000000040055c <main+68>: mov %rax,%rdx На самом деле моя программа проста: 5 int main(int argc, char *argv[]) { ...

1 ответ

Сделайте программу, используя только системные вызовы, а не Windows DLL [дубликата]

На этот вопрос уже есть ответ: Системные вызовы Windows [дубликаты] [/questions/21074334/windows-system-calls] 1 ответ Я пытаюсь заставить программу работать с системными вызовами, а не с dll kernel32.dll,ntdll.dll). Я знаю, например, что ...

2 ответа

Пример Intel, который читает метку времени с помощью asm-кода, использует на два регистра больше, чем необходимо?

Я изучаю результаты измерения производительности с помощью регистра меток времени (TSR), который есть в процессорах x86. Это полезный регистр, поскольку он измеряет монотонную единицу времени, которая не зависит от изменения тактовой частоты. ...

1 ответ

x86_64 регистры rax / eax / ax / al перезаписывают полное содержимое регистра [дубликаты]

На этот вопрос уже есть ответ: Почему инструкции x86-64 для 32-разрядных регистров обнуляют верхнюю часть полного 64-разрядного регистра? [/questions/11177137/why-do-x86-64-instructions-on-32-bit-registers-zero-the-upper-part-of-the-full-6] 2 ...

3 ответа

Как вывести точное значение счетчика программы на С

Я хочу написать программу на C, которая печатает содержимое счетчика программPC. Может ли это быть сделано из пользовательского пространства, или сборки, или используются какие-то конкретные подпрограммы ядра?

1 ответ

Какая разница в логике и производительности между LOCK XCHG и MOV + MFENCE? [Дубликат]

На этот вопрос уже есть ответ: Загружает и хранит единственные инструкции, которые переупорядочиваются? [/questions/50494658/are-loads-and-stores-the-only-instructions-that-gets-reordered] 2 ответа Что является лучшим барьером для записи на ...