Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4239897
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: LINUX

2011-03-15 10:38:04

摘自 ARM 程序分析与设计 王宇行
1.在 C 中声明函数原型,并加extern 关键词
  extern int num;
  exitern int sqr(int i);

2.在汇编中,用EXPROT 导出函数名,并用该函数名作为汇编代码段的标志
  EXPORT sqr
  EXPORT num

  1. 1. AREA |.text|,CODE,READONLY
  2.    2. IMPORT Relacation
  3.    3. EXPORT sqr
  4.    4. EXPORT num
  5.    5. ldr r5,=Relacation
  6.    6. sqr
  7.    7. MUL R1,R0,R0 ;R1=R0*R0
  8.    8. MOV R0,R1 ;R0=R1
  9.    9. MOV PC,LR ;return R0
  10.    10. AREA |.data|,NOINIT,READWRITE
  11.    11. data SPACE 1024
  12.    12. END

  1. 1. #include<stdio.h>
  2.    2. extern int num;
  3.    3. extern int sqr(int i)
  4.    4.

  5.    5. int Relocation=0;
  6.    6. int main(void)
  7.    7. {
  8.    8. printf("square of %d is %d\n",num,sqr(num));
  9.    9. }



阅读(2578) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~