«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Удерживает ли команда «lock» в сборке x86 шину на неопределенный срок?

Удерживает ли команда «lock» в сборке x86 шину на неопределенный срок?

Опубликовано 8 ноября 2024 г.
Просматривать:482

 Does the \

Понимание инструкции «Lock» в ассемблере x86

Инструкция «lock» в ассемблере x86 — это префикс, который обеспечивает эксклюзивное владение шиной для последующей инструкции. Это гарантирует, что ЦП имеет полный контроль над строкой кэша на время выполнения этой инструкции.

Деактивация блокировки шины

Вопреки общепринятому пониманию, префикс «lock» не вызывает блокировку ЦП. автобус на неопределенный срок. Блокировка снимается после выполнения последующей инструкции. Это позволяет процессору поддерживать оптимальную производительность, блокируя шину только в случае крайней необходимости.

Реализация сложения с использованием «Lock»

Предоставленный вами фрагмент кода реализует атомарное приращение длинного слова в ячейка памяти, указанная значением в регистре ecx:

  1. movl 4(%esp), �x: копирует адрес переменной, которую необходимо увеличить, в регистр ecx.
  2. incl (�x): атомарно увеличивает длинное слово по адресу, хранящемуся в регистре ecx.
  3. mov $0,�x: устанавливает регистр eax в 0.
  4. setne %al: Устанавливает значение регистра al в 1, если новое значение переменной не равно 0 (что указывает на то, что операция увеличения прошла успешно).

В результате переменная атомарно увеличивается на 1, а регистр eax устанавливается в 0, если новое значение равно 0, или в 1 в противном случае. Обратите внимание, что эта операция является увеличением, а не добавлением.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3