下载此文档

uestc微机原理第一次实验.pptx


文档分类:高等教育 | 页数:约38页 举报非法文档有奖
1/38
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/38 下载此文档
文档列表 文档介绍
1
1
一、实验目的



2
2
二、实验内容

+2+...+N
(实现字符串拷贝功能)

(选做)
3
3
三、预备知识
1. ARM汇编、 C语言
2. RVDS工具
4
4

硬件:PC 机Pentium100 以上
软件:Windows操作系统,RVDS软件
5
5
五、实验原理
ARM中的C和汇编混合编程:



6
6
汇编语言中使用C定义的全局变量

在汇编和C之间进行一些数据的传递,最简便的办法就是使用全局变量。
在汇编中调用C中定义的全局变量,需要在汇编中IMPORT 对应的全局变量。
IMPORT 伪指令用于通知编译器要使用的标号或变量在其他的源文件中定义。
例如:,:
IMPORT a
7
7
汇编中调用C函数

要在汇编中调用C文件中定义的函数,主要做两方面的工作:
首先:需要在汇编中IMPORT 对应的C函数名。
其次:在调用该C函数之前还需要通过汇编语言传递该函数的
参数。
C和汇编之间的参数传递是通过ATPCS(ARM Thumb Procedure Call Standard)的规定来进行的。简单的说就是如果函数有不多于四个参数,对应的用ARM寄存器R0-R3来进行传递,多于4个时借助栈。函数的返回值通过R0来返回。
8
8
/*asmfile */
AREA asmfile, CODE, READONLY
IMPORT cFun
ENTRY
MOV R0, #22
MOV R1, #11
BL cFun
MOV R4,R0 (函数返回值保存在R0中)
END
/*C file, called by asmfile */
int cFun(int a,int b)
{
return a-b;
}
9
9
C中调用汇编函数

在C中调用汇编文件中的函数,要做的主要工作有两个:
一:是在C中声明函数原型,并加extern关键字;
二:是在汇编中用EXPORT导出函数名,并用该函数名作为汇
编代码段的标识,最后用mov pc,lr返回。然后,就可以
在C中使用该函数了。
EXPORT伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用。
10
/*C file*/
extern void fun (int *p); 声明函数原型
int main()
{ int i; fun(&i); printf("%d\n", i); return 0;
}
/*ASMFILE*/
AREA asmfile, CODE, READONLY
EXPORT fun 导出函数名
fun
MOV R1,#1
STR R1,[R0]
MOV PC,LR 返回语句
END
C中调用汇编函数

uestc微机原理第一次实验 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数38
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小2.40 MB
  • 时间2018-07-05