任意64位数组加法汇编(ARM 基于ADS版)软中断实现

  • G7_691875
    了解作者
  • 39.7KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-13 05:39
    上传日期
在ARM平台上设计的针对任意64位数数据的加法程序,采用汇编和C混合实现,结合软中断实现。
softint.rar
内容介绍
#include <stdio.h> unsigned *swi_addr = (unsigned *)0x08; //软中断地址 extern void SWI_Handler(void); //软中断服务程序 unsigned Install_Handler( unsigned routine, unsigned *vector ) //安装软中断 { unsigned vec, old_vec; vec = (routine - (unsigned)vector - 8) >> 2; if (vec & 0xff000000) { printf("软中断服务程序地址超过32M"); } vec = 0xea000000 | vec; old_vec = *vector; *vector = vec; return (old_vec); } struct int64 { int inthigh32; int intlow32; }; __swi(0) __value_in_regs struct int64 add64(int high32_a,int low32_a,int hign32_b,int low32_b); int main(void) { int n,i; struct int64 result={0,0},num={0,0}; Install_Handler( (unsigned) SWI_Handler, swi_addr ); //安装中断向量 printf("请输入数组的大小\n"); scanf("%d",&n); for(i=0;i<2*n;i+=2) { printf("num%d low32:",i+1); scanf("%d",&num.intlow32); printf("num%d high32:",i+1); scanf("%d",&num.inthigh32); result = add64(result.inthigh32,result.intlow32,num.inthigh32,num.intlow32); } printf("the high 32 bit of result is %d\n",result.inthigh32); printf("the low 32 bit of result is %d\n",result.intlow32); while(1); return 0; }
评论
    相关推荐
    • ARM TRAINING
      arm m3 training , 3-days
    • arm资料
      arm汇编资料,以及一些其他个人东西
    • arm arm ledtest
      arm arm led arm arm ledtest
    • arm学习
      ARM学习的资料,也是我下载的,希望大家分享
    • ARM学习资料
      ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类...
    • arm学习
      arm初学者学习资料
    • carm
      carm
    • ucos arm 代码
      arm_ucos : Contains the generic code files required for a project development on the ARM core. common : Contains the uC/OS-II ARM platform port code. ep73xx : Contains the EP7312 BSP code. lpc2xxx ...
    • arm学习
      学习ARM,适用于初学者
    • ARM 指令
      ARM指令