C语言里面调用汇编程序
一.新建项目
1.打开Keil,点击Project的第一个
2.输入文件名为test1
3.选择STM32F103ZE,点击ok
4.勾选如下图所示
点击ok
5.给project的Target中的Source Groud 1添加一个项目如图
选择第三个Asm File创建汇编程序输入下列程序
AREA MY_Function,CODE,READDNLYEXPORT Init_1
Init_1MOV R1,#0MOV R2,#0
LOOPCMP R1,#10BHS LOOP_ENDADD R2,#1ADD R1,#1B LOOP
LOOP_ENDNOP END
给project的Target中的Source Groud 1添加一个项目选择第一个
键入下列程序
#include<stdio.h>extern void Init_1(void);int main()
{Init_1();return 0;
}
设置硬件仿真器,具体根据自己的实际情况进行选择我的设置如下
运行
运行结果如下
二.拓展
要求将原汇编语言 Init_1函数的类型改为 int Init_1(init) ,此函数功能修改为 传入一个整型数x,函数运行后返回整型数 x+100。 请编程实现,并仿真跟踪调试;
c语言程序改为
#include<stdio.h>extern int Init_1(int x);int main()
{int xx; xx=Init_1(20);printf("%d",xx);return 0;
}
汇编语言改为
AREA My_Function,CODE,READONLYEXPORT Init_1Init_1ADD R0,#100MOV PC,LRLOOPCMP R1,#10BHS LOOP_ENDADD R2,#1ADD R1,#1B LOOPLOOP_ENDNOPEND
运行即可
C语言里面调用汇编程序相关推荐
- c语言可以调用汇编语言吗,C语言与汇编语言混编方式
C语言是目前非常流行的一种编程语言,除具有高级语言使用方便灵活.数据处理能力强.编程简单等优点外:还可实现汇编语言的大部分功能,如可直接对硬件进行操作.生成的目标代码质量较高等,而汇编语言没有高级语言 ...
- 嵌入式裸机课程之C语言程序调用和重定位学习笔记
一.汇编写启动代码之关看门狗 前期准备工作 1.1 什么是看门狗 看门狗(watchdog timer)电子设备经常会跑飞或者死机(譬如极端炎热.极端寒冷.工业复杂场合) 这种情况我们需要设备自动复位 ...
- 【ATT 与 Intel】汇编与C语言相互调用及内联汇编
目录 一.ATT 与 Intel 二.函数调用的约定 三.C语言调用汇编程序 四.汇编程序调用C语言 五.内联汇编 5.1.基本asm格式 5.2.扩展asm格式 5.3.使用占位符来替代寄存器名称 ...
- Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...
- f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...
- C语言不调用库函数画直线
昨天写了一个代码,使用C语言画三角形,既然写了那个,那就继续画一条直线,这个也很有意思. C语言不调用库函数画一个三角形 直线的方程是 如下图所示 - - 斜率的范围 (-∞,+∞) 既然知道公式了, ...
- c语言内置画直线函数库,C语言不调用库函数画直线
昨天写了一个代码,使用C语言画三角形,既然写了那个,那就继续画一条直线,这个也很有意思. C语言不调用库函数画一个三角形 直线的方程是 如下图所示 - - 斜率的范围 (-∞,+∞) 既然知道公式了, ...
- powershell执行c语言文件,c语言中调用shell脚本
[转]c语言中调用shell脚本 关于在c语言中调用shell脚本,先是在百度上百度了一下 下面的这个应该是说的比较详细的 dreamerkxz.blog.163.com/blog/static/82 ...
- 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...
作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...
最新文章
- DGL RDKit | 基于Attentive FP可视化训练模型原子权重
- CTFshow php特性 web92
- python中的全局变量与局部变量
- 数据交换格式Json与XML
- Qt MVC编程之table view 的简单应用
- springboot idea debug 模式下启动特别忙,且无法访问
- python中从键盘输入的代码_python如何从键盘获取输入实例
- [转]HttpWatch工具简介及使用技巧
- win10改计算机用户名,win10如何改成自己想要的文件夹用户名?
- Windows解除网速限制,Windows性能提升,性能优化
- Atitit tomcat 启动报错 ZipException: archive is not a ZIP archive. 1.1. ----Should sh lib jar err...	1
- Xv6 编写用户程序
- 网络原理制作bt采集蜘蛛
- 新买的电脑 Windows10/Windows11即将过期怎么办
- sort()与拉姆达表达式
- 发布“智能化、平台化、全程电子化”的新OA系统——e-cology9.0
- 用python快速群发邮件
- STM32h743开启cache后ADC采集DMA数据不更新问题
- su 鉴定故障解决办法(转)
- 书籍是人类进步的阶梯