Вопросы по теме 'x86'

Дает ли использование xor reg, reg преимущество перед mov reg, 0?
Есть два хорошо известных способа установить целочисленный регистр в нулевое значение на x86. Либо mov reg, 0 or xor reg, reg Есть мнение, что второй вариант лучше, так как в коде не сохраняется значение 0, что экономит несколько...
16966 просмотров
schedule 30.12.2023

неопределенная ссылка на sync_fetch_and_add_4
Всякий раз, когда я пытаюсь использовать __sync_fetch_and_add с -m32 на 64-битной машине, я получаю следующую ошибку, хотя она нормально компилируется с обычной 64-битной. Я использую компилятор gcc 4.1.2. В чем здесь может быть проблема и какое...
12020 просмотров
schedule 13.01.2024

Доступ к массиву с помощью встроенной сборки с использованием синтаксиса AT&T
Я хочу назначить массив, используя встроенную сборку, используя синтаксис AT&T. Я хочу добиться чего-то вроде следующего. Обратите внимание, что rsp здесь — регистр %rsp . long saved_sp[N]; long new_sp[N]; void some_function( unsigned int...
593 просмотров
schedule 25.11.2023

Я так понимаю стек? пожалуйста, поправьте меня
У меня есть этот код, написанный на c: int main(){ double x, y; int a, b, c; int *p; и я имею: sizeof(int)=4 sizeof(double)=8 Является ли структура памяти такой? Подробнее в графическом режиме: IN MEMORY:(whole memory)...
122 просмотров
schedule 01.11.2023

Озадаченный инструкцией x86 MOV
Из руководства Intel64 и IA-32, том 2a, есть много возможных вариантов использования инструкции mov. Такие как: mov r64, m64 # move m64 to r64 mov rax, moffs64 # move quadword at (offset) to RAX Я написал код для тестирования (газ,...
1145 просмотров
schedule 03.01.2024

BIOS автоматически загружает таблицу прерываний?
Я видел такие программы, как загрузчики, которые создают прерывания типа int 10, int 13 и т. Д. Очевидно, что эти записи существовали не всегда, поэтому BIOS их загрузил? Если да, то какие прерывания загружает BIOS? Кроме того, можно ли...
902 просмотров
schedule 15.12.2023

Имеют ли немаскируемые прерывания приоритет над текущей инструкцией?
Я работаю над курсом ассемблера, и меня озадачил следующий вопрос. Я пытался воспроизвести это в коде, но в симуляторе сложно воспроизвести ситуацию. Значение 5 хранится по адресу 0x0000100. В тот самый момент, когда процессор оценивает...
171 просмотров
schedule 06.11.2023

Nasm печатать до следующей строки
У меня есть следующая программа, написанная на NASM Assembly: section .text global _start: _start: ; Input variables mov edx, inLen mov ecx, inMsg mov ebx, 1 mov eax, 4 int 0x80 mov edx, 2 mov ecx, num1...
6372 просмотров
schedule 07.12.2023

Почему у NASM нет проблем с правильными мнемониками инструкций в качестве имен символов в операндах?
Я написал следующую простую программу, но nasm отказывается ее компилировать. section .text global _start _start: mov rax, 0x01 mov rdi, 0x01 mov rsi, str mov rdx, 0x03 syscall mov rax, 60 syscall segment .data...
139 просмотров

Как заставить NASM кодировать [1 + rax * 2] как disp32 + index * 2 вместо disp8 + base + index?
Для эффективного выполнения x = x*10 + 1 , вероятно, оптимально использовать lea eax, [rax + rax*4] ; x*=5 lea eax, [1 + rax*2] ; x = x*2 + 1 3-компонентный LEA имеет более высокую задержку на современных процессорах Intel,...
509 просмотров

Что такое подсказка процессора?
В контексте руководств разработчика программного обеспечения для архитектур Intel® 64 и IA-32 я хотел бы знать, что означает слово «подсказка»? Я вижу это в нескольких разделах: В описании PREFETCHWT1 - Prefetch подсказка T1 с целью...
434 просмотров
schedule 01.11.2023

Я новичок в языке ассемблера. Как разорвать цикл рекурсии?
Я новичок в языке ассемблера. Я создаю функцию простой факторизации в синтаксисе AT&T x64/GNU. Вот.. .data .text .global main .prime_end: .string "End\n" .fact_end: .string "Finish\n" .fact_print: .string "%d\n"...
45 просмотров
schedule 30.11.2023