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

C和汇编混合编程

汇编代码(assembly.asm)如下:

.codeAddNumbers PROCmov rax, rcx ; the first parameteradd rax, rdx ; the second parameterret
AddNumbers ENDPGetTimestamp PROCrdtsc ; 读取时间戳计数器到EDX:EAXshl rdx, 32 ; 将EDX左移32位or rax, rdx ;  合并到RAXret
GetTimestamp ENDPEND

C代码(main.c)如下:

#include <stdio.h>// 声明汇编函数
extern long long AddNumbers(long long a, long long b);
extern unsigned long long GetTimestamp(void);int main() {long long sum = AddNumbers(10, 20);printf("Sum: %lld\n", sum);unsigned long long ts = GetTimestamp();printf("Timestamp: %llu\n", ts);return 0;
}

首先如果.asm和.c文件的名字都是main(或者同一个名字),那么会出现编译器错误,因此命名时需要注意命名为不同的名字。
配置1:创建自定义构建规则
1.右键项目 → Build Dependencies → Build Customizations...
2.勾选 masm(.targets, .props)
3.点击 OK
配置2:配置汇编文件属性(关键步骤)
1.右键点击 main.asm → 选择 "Properties"

2.在属性窗口中,确认:

  • Configuration: All Configurations
  • Platform: x64

3.找到 "General" 设置:

  • Excluded From Build: No
  • Item Type: 必须选择 "Microsoft Macro Assembler"
  • 如果这里是 "Does not participate in build",就会导致链接错误

4.设置输出文件:

  • Output File: $(IntDir)%(Filename).obj
http://www.jsqmd.com/news/194699/

相关文章:

  • 安益日化:品牌推荐高品质洗护用品ODM代加工 - 速递信息
  • Availability(可用性)与高可用架构 内容的结构化知识点汇总
  • Agentic AI合规经验:提示工程架构师如何打造个人品牌?
  • CF830E Perpetual Motion Machine
  • 2026油泼辣子品牌top5推荐榜,优质工厂及供应商深度解析/选择指南 - 全局中转站
  • 【Unity 实用工具篇】| UX Tool 工具 快速上手使用,提高日常开发效率
  • 高档香薰香氛生产工厂排名:安益日化BSCI认证全链生产领跑 - 速递信息
  • 102302114_比山布努尔兰_作业2
  • .NET周刊【12月第1期 2025-12-07】
  • 个人开发者做测试环境,2核2G服务器够用吗?
  • 单例模式:高效构建全局唯一实例
  • 2核2G配置的Linux云服务器能同时跑Nginx、MySQL和PHP吗?
  • 吐血推荐10个一键生成论文工具,专科生毕业论文轻松搞定!
  • Cursor收购Graphite:打通从编码到合并的闭环
  • 基于定制开发开源AI智能名片S2B2C商城小程序的刚需类产品电商运营模式研究
  • 电脑配置流程(VR项目)
  • 26年元旦DeepSeek梁文峰署名发的mHC讲了什么
  • 雷家林(レイ・ジアリン)詩歌集録 その二
  • 2026辣椒油品牌top5推荐榜,优质工厂及供应商深度解析/选择指南 - 全局中转站
  • docker后台运行模式和交互模式学习
  • 2026最新延吉烤肉餐厅top5推荐!延吉本地延边大学等地加盟餐饮品牌深度解析及选择指南 - 全局中转站
  • 雷家林(レイ・ジアリン)詩歌集録 その三
  • 电脑配置流程(WebGL项目)
  • 对初学者的JavaScript八种类型实用小技巧
  • springboot基于电商大数据的商城商品推荐系统vue
  • 深度测评专科生必用的8款AI论文工具
  • 《Tableau大数据实战技巧进阶:从熟练到精通》
  • 江苏专业的港澳台联考公司哪个好
  • 深入解析:Android16音频之获取Track状态AudioTrack.getState:用法实例(一百二十九)
  • springboot学生学分学业预警管理系统vue