【发布时间】:2010-11-26 00:13:12
【问题描述】:
我在 Linux 环境中处理 Nasm 和 GNU C 内联 asm 已经有一段时间了,这个功能效果很好……但现在我正在切换到 Windows 环境,我想使用 Masm(带有 VS2008)我不能似乎让这个工作......
void outportb (unsigned short _port, unsigned short _data)
{
__asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data));
}
当我写出这样的东西时......
void outportb (unsigned short _port, unsigned short _data)
{
asm volatile ("outb %1, %0" : : "dN" (_port), "a" (_data));
}
asm 不再被识别,并且 volatile 抛出一个错误,说“字符串”,我也尝试写 _asm volatile 但我收到一个错误,说“'操作码'中的内联汇编语法错误;找到'数据类型'”
【问题讨论】:
标签: c assembly visual-c++ masm inline-assembly