#include<stdio.h>
void main()
{
int a = 5;
_asm {
mov eax,10
mov a,eax
}
printf("%d",a);
}
非常简单的一段示例代码
由于汇编的i\o比较麻烦,所以用c实现一下
【如何在vs2015中将编写的代码变成汇编语言】
项目 -> 属性 -> C/C++(这是cpp文件的例子) -> 输出文件->汇编程序输出 ->带源代码的程序集 (/FAs)
【2018.12.29】operand size conflict(操作数大小冲突)……ax换al。
#include<stdio.h>
void main()
{
char a = 1;
__asm {
mov ax, 0
mov a, al//ax换al:解决operand size conflict错误
}
printf("%d", a);
}
(在vs2010上的win32的编译器貌似不支持eax、qax,vs2017的不支持qax……)
在Visual C++使用内联汇编用到的是__asm关键字,这个关键字有两种使用方法:
1.简单__asm块
__asm
{
MOV AL, 2
MOV DX, 0XD007
OUT AL, DX
}
2.在每条汇编指令之前加__asm关键字
__asm MOV AL, 2
__asm MOV DX, 0xD007
__asm OUT AL, DX