Вопросы с тегом «assembly»

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


4
Если регистры такие невероятно быстрые, почему у нас их не стало больше?
В 32-битной версии у нас было 8 регистров общего назначения. С 64-битной версией количество удваивается, но, кажется, не зависит от самого 64-битного изменения. Теперь, если регистры такие быстрые (нет доступа к памяти), почему их, естественно, не стало больше? Разве сборщики ЦП не должны загружать в ЦП как можно больше регистров? …

7
Ограничения синтаксиса сборки Intel по сравнению с AT&T [закрыто]
В настоящее время этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, потребует дебатов, аргументов, опросов или расширенного обсуждения. Если вы считаете, что этот вопрос можно улучшить и, возможно, снова открыть, обратитесь за помощью …
88 linux  assembly  x86  att  bsd 


30
Почему вы программируете на сборке? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт в прошлом году . Уточните этот вопрос У меня есть вопрос ко всем …

3
Использование gdb для пошагового ассемблерного кода за пределами указанного исполняемого файла вызывает ошибку «не удается найти границы текущей функции»
У меня нет целевого исполняемого файла gdb, и у меня даже нет стека, соответствующего этой цели. В любом случае я хочу пошагово, чтобы я мог проверить, что происходит в моем коде сборки, потому что я не эксперт в сборке x86. К сожалению, GDB отказывается выполнять эту простую отладку на уровне …

2
Что означает «rep; нет; " имеется ввиду в сборке x86? Это то же самое, что и инструкция «пауза»?
Что rep; nopзначит? Это то же самое, что и pauseинструкция? Это то же самое, что rep nop(без точки с запятой)? Чем отличается простая nopинструкция? По-разному ли ведет себя на процессорах AMD и Intel? (бонус) Где официальная документация к этим инструкциям? Мотивация на этот вопрос После некоторого обсуждения в комментариях к …


4
Почему T * может быть передано в регистр, а unique_ptr <T> не может?
Я смотрю выступление Чендлера Каррута в CppCon 2019: Нет абстракций с нулевой стоимостью в нем он приводит пример того, как он был удивлен тем, сколько накладных расходов вы понесли, используя std::unique_ptr&lt;int&gt;овер int*; этот сегмент начинается примерно в момент времени 17:25. Вы можете взглянуть на результаты компиляции его примера пары фрагментов …

6
Оператор if vs оператор if-else, что быстрее? [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 3 года назад . Уточните этот вопрос На днях я спорил с другом по поводу этих …

17
Как работает стек на языке ассемблера?
В настоящее время я пытаюсь понять, как работает стек, поэтому я решил научиться некоторому языку ассемблера , я использую эту книгу: http://savannah.nongnu.org/projects/pgubook/ Я использую Gas и занимаюсь разработкой на Linux Mint . Меня что-то немного смущает: Насколько мне известно, стек - это просто структура данных. Поэтому я предположил, что если …

1
Производительность цикла кода C [продолжение]
Этот вопрос продолжает мой вопрос здесь (по совету Mystical): Производительность цикла кода C Продолжая свой вопрос, когда я использую упакованные инструкции вместо скалярных инструкций, код, использующий встроенные функции, будет выглядеть очень похоже: for(int i=0; i&lt;size; i+=16) { y1 = _mm_load_ps(output[i]); … y4 = _mm_load_ps(output[i+12]); for(k=0; k&lt;ksize; k++){ for(l=0; l&lt;ksize; l++){ …

19
Какова цель кода операции CIL nop?
Я просматриваю MSIL и замечаю, что в MSIL есть много инструкций nop . В статье MSDN говорится, что они не предпринимают никаких действий и используются для заполнения пространства, если код операции исправлен. Они гораздо чаще используются в отладочных сборках, чем в сборках выпуска. Я знаю, что такие операторы используются в …
82 assembly  bytecode  cil 

1
Go не связывает мою сборку: неопределенная внешняя функция
Я пытаюсь написать немного SIMD в основном для учебных целей. Я знаю, что Go может связывать сборку, но я не могу заставить его работать правильно. Вот самый простой пример, который я могу сделать (поэлементное умножение векторов): vec_amd64.s (примечание: под фактическим файлом стоит пробел, RETиначе он вызывает ошибки) // func mul(v1, …
82 assembly  go 

3
Почему панель GCC работает с NOP?
Я работал с C некоторое время и совсем недавно начал разбираться в ASM. Когда я компилирую программу: int main(void) { int a = 0; a += 1; return 0; } В дизассемблере objdump есть код, но после ret нет: ... 08048394 &lt;main&gt;: 8048394: 55 push %ebp 8048395: 89 e5 mov …
81 c  gcc  assembly 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.