Вопросы по теме '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 просмотров
schedule
11.01.2024
Как заставить 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 просмотров
schedule
02.11.2023
Что такое подсказка процессора?
В контексте руководств разработчика программного обеспечения для архитектур 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