当前位置: 首页 > news >正文

VS2010 C语言内嵌汇编语言程序

VS2010 C语言内嵌汇编语言程序

2021年7月28日·席锦

在visual studio 2010中C语言使用内联汇编写代码 ,它的格式有两种,

一种是__asm 直接接汇编指令语句,比如:__asm int 3     // 软件中断

另一种是加上花括号,类似于一个函数,比如

__asm

{

mov eax, 1 ;1到eax

mov ebx, 2 ;2到ebx

add eax, ebx ;eax 和ebx相加,含义为:eax+=ebx

}

使用内联汇编有个好处可以直接使用C/C++中的变量 ,比如

int a;

__asm mov a, 2 // 可以使用变量,只有一条,含义为:给变量a赋值为2

另外使用内联汇编最需要注意的是数组。比如:int b[2] = {1,2} ;

不可以直接

__asm

{

mov b[0], 1

mov b[1], 2

}

这样是错误的, 需要

__asm

{

mov b[0], 1

mov b[4], 2

}

为什么是4呢?因为内联汇编转换后是数组a的地址偏移,而不是序号。

下述是在VS2010中编译通过的示例代码

#include <stdio.h>int main()
{printf("Hello, World!\n");__asm int 3     // 软件中断int a;__asm mov a, 2 // 可以使用变量,只有一条,含义为:给变量a赋值为2printf("a=%d\n", a);// 需要在调试模式(F5)中查看下述eax、ebx的值__asm {mov eax, 1 ;1到eaxmov ebx, 2 ;2到ebxadd eax, ebx ;eax 和ebx相加,含义为:eax+=ebx}int b[2] = {0, 1};__asm{mov b[0], 1mov b[4], 2}printf("bye, World!\n");return 0;
}

运行截图(F5进入调试模式可查看上文中叙述的变量值):

http://www.lryc.cn/news/195865.html

相关文章:

  • 【TES720D】青翼科技基于复旦微的FMQL20S400全国产化ARM核心模块
  • css 左右滚轮无缝衔接
  • Hadoop分布式文件系统-HDFS
  • 专业图表绘制软件 OmniGraffle Pro mac v7.22.1中文版软件介绍
  • Git 本地文件合并和恢复
  • 记录git仓库pr没有显示贡献者的问题,以及如何提交一个pr(简)
  • 入侵检测代码
  • 数字孪生技术如何提高化工生产安全性?
  • PHP 如何查看php函数源码
  • 前端web自动化测试:selenium怎么实现关键字驱动
  • C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)
  • 国际SPEC CPU创榜以来整机最高纪录!浪潮信息八路服务器TS860G7刷新权威算力基准评测性能
  • 【linux】重定向+缓冲区
  • 【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】
  • 吴恩达深度学习笔记
  • 基于SpringBoot的医疗预约服务管理系统
  • Java本地缓存的使用
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:281-300)
  • 【分享Python代码】图片转化为素描画
  • 汇川Easy521PLC与压力传感器485通讯实例
  • 创意作品管理软件 Bridge 2024 mac中文版 br2024功能特色
  • 【分享】教你加速访问GitHub,进来学!
  • 利用在线培训系统提升员工技能,助力企业发展
  • 深度学习小工具:Linux 环境下的用户命令和脚本顺序执行器
  • c# WPF 应用程序在屏幕上居中显示
  • JVM之class文件结构剖析
  • TDengine 签约中石化,支撑八大油田 PCS 系统
  • win11 定时计划任务
  • C++入门之引用与内联函数
  • 浅谈智能照明控制系统应用在城市轨道交通