Fre*_*ick 5 c assembly masm nasm visual-studio
我已经在linux环境中与Nasm打交道已经有一段时间了,这个功能运行得很好......但是现在我正在切换到Windows环境,我想使用Masm(使用VS2008)我似乎无法让这个工作.. .
void outportb (unsigned short _port, unsigned short _data)
{
__asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data));
}
Run Code Online (Sandbox Code Playgroud)
当我写这样的东西......
void outportb (unsigned short _port, unsigned short _data)
{
asm volatile ("outb %1, %0" : : "dN" (_port), "a" (_data));
}
Run Code Online (Sandbox Code Playgroud)
asm不再被识别,并且volatile抛出一个错误,说"string",我也尝试编写_asm volatile但是我得到一个错误,说''opcode'中的内联汇编语法错误;找到'数据类型'"
假设您正在讨论x86命令集,请记住以下几点:
这是代码(假设您正在写入16位端口):
void outportw(unsigned short port, unsigned short data)
{
__asm mov ax, data;
__asm mov dx, port;
__asm out dx, ax;
}
Run Code Online (Sandbox Code Playgroud)
如果你写入8位端口,代码应如下所示:
void outportb(unsigned short port, unsigned char data)
{
__asm mov al, data;
__asm mov dx, port;
__asm out dx, al;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7250 次 |
| 最近记录: |