题
我记得在天与老borland DOS编译器,你可以做像这样的东西:
asm {
mov ax,ex
etc etc...
}
是否有一个半独立的平台的方式来做到这个吗?我有一个需要作一个BIOS电话,所以,如果有办法做到这一点没有个体和小型代码,这将同样有用的给我。
其他提示
在海湾合作委员会,还有更重要的还不止这一点。在该指令中,你必须告诉编译器什么改变,以便优化其不搞砸了。我不是专家,但有时它看起来像这样的东西:
asm ("lock; xaddl %0,%2" : "=r" (result) : "0" (1), "m" (*atom) : "memory");
这是一个很好的想法写入了一些样品中的代码C,然后要求海湾合作委员会产生一个组件清单,然后修改,代码。
一个好的开始将在阅读这篇文章,其中谈谈联会在C/C++:
http://www.codeproject.com/KB/cpp/edujini_inline_asm.aspx
例从文章:
#include <stdio.h>
int main() {
/* Add 10 and 20 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"addl %ebx, %eax;"
);
/* Subtract 20 from 10 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"subl %ebx, %eax;"
);
/* Multiply 10 and 20 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"imull %ebx, %eax;"
);
return 0 ;
}
非x86Microsoft汇编者不支持在线件。你要定义的整体功能在一个单独的组件来源文件,并通过这一汇编器。
你是高度不可能呼叫到BIOS下的保护模式的操作系统和应用的任何设施都可以在这一系统。甚至如果你在的核心模式是可能不安全-BIOS可能不是正确同步与尊重的操作系统状态如果你这样做。
不隶属于 StackOverflow