一.新建项目

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语言里面调用汇编程序相关推荐

  1. c语言可以调用汇编语言吗,C语言与汇编语言混编方式

    C语言是目前非常流行的一种编程语言,除具有高级语言使用方便灵活.数据处理能力强.编程简单等优点外:还可实现汇编语言的大部分功能,如可直接对硬件进行操作.生成的目标代码质量较高等,而汇编语言没有高级语言 ...

  2. 嵌入式裸机课程之C语言程序调用和重定位学习笔记

    一.汇编写启动代码之关看门狗 前期准备工作 1.1 什么是看门狗 看门狗(watchdog timer)电子设备经常会跑飞或者死机(譬如极端炎热.极端寒冷.工业复杂场合) 这种情况我们需要设备自动复位 ...

  3. 【ATT 与 Intel】汇编与C语言相互调用及内联汇编

    目录 一.ATT 与 Intel 二.函数调用的约定 三.C语言调用汇编程序 四.汇编程序调用C语言 五.内联汇编 5.1.基本asm格式 5.2.扩展asm格式 5.3.使用占位符来替代寄存器名称 ...

  4. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  5. f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码

    f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...

  6. C语言不调用库函数画直线

    昨天写了一个代码,使用C语言画三角形,既然写了那个,那就继续画一条直线,这个也很有意思. C语言不调用库函数画一个三角形 直线的方程是 如下图所示 - - 斜率的范围 (-∞,+∞) 既然知道公式了, ...

  7. c语言内置画直线函数库,C语言不调用库函数画直线

    昨天写了一个代码,使用C语言画三角形,既然写了那个,那就继续画一条直线,这个也很有意思. C语言不调用库函数画一个三角形 直线的方程是 如下图所示 - - 斜率的范围 (-∞,+∞) 既然知道公式了, ...

  8. powershell执行c语言文件,c语言中调用shell脚本

    [转]c语言中调用shell脚本 关于在c语言中调用shell脚本,先是在百度上百度了一下 下面的这个应该是说的比较详细的 dreamerkxz.blog.163.com/blog/static/82 ...

  9. 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...

    作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...

最新文章

  1. DGL RDKit | 基于Attentive FP可视化训练模型原子权重
  2. CTFshow php特性 web92
  3. python中的全局变量与局部变量
  4. 数据交换格式Json与XML
  5. Qt MVC编程之table view 的简单应用
  6. springboot idea debug 模式下启动特别忙,且无法访问
  7. python中从键盘输入的代码_python如何从键盘获取输入实例
  8. [转]HttpWatch工具简介及使用技巧
  9. win10改计算机用户名,win10如何改成自己想要的文件夹用户名?
  10. Windows解除网速限制,Windows性能提升,性能优化
  11. Atitit tomcat 启动报错 ZipException: archive is not a ZIP archive. 1.1. ----Should sh lib jar err... 1
  12. Xv6 编写用户程序
  13. 网络原理制作bt采集蜘蛛
  14. 新买的电脑 Windows10/Windows11即将过期怎么办
  15. sort()与拉姆达表达式
  16. 发布“智能化、平台化、全程电子化”的新OA系统——e-cology9.0
  17. 用python快速群发邮件
  18. STM32h743开启cache后ADC采集DMA数据不更新问题
  19. su 鉴定故障解决办法(转)
  20. 书籍是人类进步的阶梯

热门文章

  1. 相对定位、绝对定位与固定定位
  2. 查看远程计算机的共享,win7怎么查看远程机器共享文件夹
  3. 【海康威视】web无插件3.2,vue开发
  4. C# 计算标准偏差相当于Excel中的STDEV函数
  5. 【学习笔记】活用数据
  6. 【MATLAB项目实战】基于CNN_SVM的图像花卉识别
  7. 基于matlab的回波,基于matlab回波的产生与消除课程设计
  8. 数据库(5)--触发器的定义
  9. 【UML】——构件图
  10. c++信息学奥赛一本通1318题解