Некоторое время я имел дело с Nasm в среде Linux, и эта функция отлично работала ... но теперь я переключаюсь на среду 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, но получаю сообщение об ошибке "синтаксическая ошибка встроенного ассемблера в 'коде операции'; обнаружен 'тип данных'"