首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

内联汇编里获得idt的内容 语法异常

2012-02-08 
内联汇编里获得idt的内容 语法错误struct idtr idtr//idtr结构体Assembly code__asm__ (sidt %0:a(i

内联汇编里获得idt的内容 语法错误
struct idtr idtr;//idtr结构体

Assembly code
__asm__ (                "sidt %0"                 :"=a"(idtr)                 :                 :"memory"                         );


编译结果是 error: impossible constraint in ‘asm’
个人感觉好象是输出寄存器中的 :"=a"(idtr)的格式错了
不过不知道怎么改 
请高手指点一下

[解决办法]
__asm__ __violate__(
"sidt %0"
:"=r"(idtr)
);

再试下
[解决办法]
探讨

引用:

__asm__ __violate__(
"sidt %0"
:"=r"(idtr)
);
再试下

谢谢 我把它改成 :=m"(idtr)编译通过了
然后执行了 打印出idt的内容
执行多次 居然发现中断描述符表的基地址不确定,是变化的,而长度是一直不变的0x7ff
我觉得中断描述符表的基地址在运行的系统中应该是不……

热点排行