第一次接触汇编

#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年才发现的前辈的帖子:http://blog.csdn.net/jiangwei0512/article/details/50856834

 

 

【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……)

 

asm内嵌的方法详解:https://blog.csdn.net/sinat_27382047/article/details/85057649

在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

 

 

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超自然祈祷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值