Книга: Программирование для Linux. Профессиональный подход
9.3.4. Модифицируемые регистры
9.3.4. Модифицируемые регистры
Если в качестве побочного эффекта инструкция модифицирует значение одного или нескольких регистров, в функции asm()
должна присутствовать четвертая секция. Например, инструкция fucomip
меняет регистр кода завершения, обозначаемый как cc. Строки, представляющие затираемые регистры, разделяются запятыми. Если инструкция способна изменить произвольную ячейку памяти, в этой секции должно стоять ключевое слово memory
. На основании этой информации компилятор определяет, какие значения должны быть загружены повторно после завершения функции asm()
. При отсутствии данной секции компилятор может сделать неверное предположение о том, что регистры содержат прежние значения, и это скажется на работе программы.
Оглавление статьи/книги
Похожие страницы
- Регистры для управления каналами захвата
- Регистры управления SPxCR1 и SPxCR2
- 1.3.5. Режимы и регистры ЕСР-порта
- Регистры состояния SCxSR1 и SCxSR2
- Регистры сторожевого таймера и монитора тактирования
- Регистры управления счетчиком событий
- Регистры скорости обмена SCxBDH и SCxBDL
- 4.5. Регистры специальных функций МК
- Регистры управления портами
- 4.10.5. Регистры подсистемы прерывания
- 4.14.3. Регистры для управления счетчиком временной базы
- Регистры управления таймером 1 и 2