Assembly 试图查看Microblaze上MSR寄存器中的内容

Assembly 试图查看Microblaze上MSR寄存器中的内容,assembly,microblaze,Assembly,Microblaze,使用OVPSim,我希望能窥视一下(模拟)MSR寄存器的内容 register int x asm("r19"); asm("mfs r19, msr"); printf("R19 contains %i\n", x); 这会产生以下错误: Compiling application.c /tmp/ccbSgUEu.s: Assembler messages: /tmp/ccbSgUEu.s:59: Error: register expected, but saw 'msr' /

使用OVPSim,我希望能窥视一下(模拟)MSR寄存器的内容

  register int x asm("r19");
  asm("mfs r19, msr");
  printf("R19 contains %i\n", x);
这会产生以下错误:

Compiling application.c
/tmp/ccbSgUEu.s: Assembler messages:
/tmp/ccbSgUEu.s:59: Error: register expected, but saw 'msr'
/tmp/ccbSgUEu.s:59: Fatal error: invalid value for special purpose register
make: *** [application.o] Error 1
使用此代码时:

register int x asm("r19");
asm("mfs r19, 1 ");
printf("R19 contains %i\n", x);
给我:

/tmp/ccWZKjxi.s: Assembler messages:
/tmp/ccWZKjxi.s:59: Error: register expected, but saw '1'
/tmp/ccWZKjxi.s:59: Fatal error: invalid value for special purpose register
make: *** [application.o] Error 1
以及Xilinx文档(阅读PC)中实际给出的示例:

同样失败——那么正确的方法是什么呢

注:我正在使用交叉工具,例如
make-C HelloWorld/CROSS=MICROBLAZE

如果寄存器的名称为rmsr,则代码将编译,即:

 asm("mfs r19, rmsr")
 asm("mfs r19, rmsr")