2013-07-02 2 views
1

Я использую C-компилятор Diab C для PowerPC и должен скопировать MSR в локальную переменную функции. Diab не поддерживает расширение выражения CCC типа C, поэтому «mfmsr% 0 \ n»: «= r» (msr) не работает. Простое обращение к переменной (mfmsr msr) тоже не работает. Документация в основном неактивна при доступе к переменным С, хотя он говорит, что встроенная сборка хороша для работы со статическими переменными, но не дает примера.Доступ к функциональным переменным с встроенным ассемблером

Любые советы или примеры?

ответ

3

Посмотрев на документацию, наконец, отведите меня в макрос asm. Я создал макрос ассемблера, который очень похож на функцию C и вызывает это.

__asm INT32U getMSR() 
{ 
    ! "r3" /* Scratch register.*/ 

    mfmsr r3 
} 

и где я хочу, чтобы получить MSR:

{ 
... 
msr = getMSR(); 
... 
} 
Смежные вопросы