Chinaunix
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
[打印本页]
作者:
studyonly
时间:
2004-11-16 11:17
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
为了测试gcc中,对嵌入汇编指令的c/c++代码,偶写了一段如下代码作测试用:
__asm__("mov ah, al"
;
gcc编译时的提示错误为:
/tmp/ccldQTM.s:Assembler messages:
/tmp/ccldQTM.s:16:Error:too many memory reference for 'mov'
什么原因,请高手解释:
随便问一下:Linux有没有和M$ NT内核系统的运行级的概念,即不能直接outp()之类的对硬件端口直接访问,Linux有没有这个保护机制???
等……
作者:
aero
时间:
2004-11-16 11:31
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
linux下用AT&T风格的汇编语言。用__asm__("movb %al, %ah"
;就好了。
作者:
_z_
时间:
2004-11-16 11:55
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
__asm__("movb %%ah, %%al"
;
作者:
win_hate
时间:
2004-11-16 12:22
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
[quote]
原帖由 "studyonly"]Linux有没有和M$ NT内核系统的运行级的概念,即不能直接outp()之类的对硬件端口直接访问,Linux有没有这个保护机制..........[/quote 发表:
不能直接 out
作者:
ificanfly
时间:
2004-11-16 12:51
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
[quote]
原帖由 "studyonly"]Linux有没有和M$ NT内核系统的运行级的概念,即不能直接outp()之类的对硬件端口直接访问,Linux有没有这个保护机制..........[/quote 发表:
如果连这个都没有的系统谁还敢用作服务器。
linux下可以在用户模式中直接使用IO端口,范围限制在0-0x3ff,
但是
你的程序必须有root权限。而且在直接访问端口前还得ioperm取得使用权。
当然如果你喜欢变态的程序又不怕带来麻烦,就iopl(3),,这样子爽是爽了,就是让人有点心神不安。
这个功能很方便地。比win上爽多了。
作者:
studyonly
时间:
2004-11-16 13:49
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
哪里有相关的资料???
作者:
studyonly
时间:
2004-11-16 15:28
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
以上问题已经解决,
如何将一个c程序中的变量,赋给寄存器,
例如:
void toAX(int a)
{
...
// 如何实现把a赋给寄存器ax
}
是这样吗? asm("mov ax, %0" : "r"(a))
作者:
_z_
时间:
2004-11-16 15:41
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
asm("" : :"ax"(a));
作者:
studyonly
时间:
2004-11-16 17:14
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
用汇编产生15H中断:
asm("int $0x15"
;
编译通过,运行出现段错误!
等……
作者:
aero
时间:
2004-11-16 17:16
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
不要完全套用DOS下的程序,关于中断,是有不同的处理的。好好查查资料吧。
作者:
studyonly
时间:
2004-11-16 17:41
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
请回答详细一点,要查哪些资料?
谢!
作者:
aero
时间:
2004-11-17 08:34
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
AT&T汇编、linux下的syscall、C与汇编混编。
作者:
soloarrow
时间:
2004-11-17 10:37
标题:
gcc编译嵌入汇编指令的c代码,出错???高手进来!
找资料的话google是个好地方,^_^。还有就是论坛里好像有关于linux下汇编语法的说明,可以找来看看。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2