• ARM基础:C程序调用汇编


     

    /******************************************************************************************************************
    参考:
    说明:这个是存到一个变量中,以后再补充一个返回值保存到指针中的。

    ******************************************************************************************************************/ 

    1. //startup.s    
    2.         AREA    asmfile, CODE, READONLY    
    3.         EXPORT  asmSum1    
    4.         IMPORT Main    
    5.         ENTRY    
    6. START    
    7.         b Main    
    8. asmSum1    
    9.         add r0, r0, r1     
    10.     
    11. over    
    12.         mov pc, lr    
    13.             
    14.         END  


    1. //main.c    
    2. #include <stdio.h>    
    3.     
    4. extern int asmSum1(int src, int dest);    
    5.     
    6. int Main()    
    7. {    
    8.     int s = 2;    
    9.     int d = 3;    
    10.     int c = asmSum1(s, d);    
    11.     //see c    
    12.     return 0;    

    2.0 题目:设计一个函数,原型为 void asmSum1(int src, int dest, int *psum);在汇编中定义,并且通过psum指针接收结果;


    1. //main.c    
    2. #include <stdio.h>    
    3.     
    4. extern int asmSum1(int src, int dest,int* san);    
    5.     
    6. int Main()    
    7. {    
    8.     int s = 2;    
    9.     int d = 3;    
    10.     int psum[1];    
    11.     int c = (int)psum;    
    12.     asmSum1(s, d, psum);    
    13.     //see c    
    14.     return 0;    
    1. @@startup.s    
    2.         AREA    asmfile, CODE, READONLY    
    3.         EXPORT  asmSum1    
    4.         IMPORT Main    
    5.         ENTRY    
    6. START    
    7.         b Main    
    8. asmSum1    
    9.         add r0, r0, r1     
    10.         str r0, [r2]    
    11.     
    12. over    
    13.         mov pc, lr    
    14.             
    15.         END

     

  • 相关阅读:
    [Codeforces Round #617 (Div. 3)] 题解 A,B,C,D,E1,E2,F
    [Codeforces Round #611 (Div. 3)] C. Friends and Gifts (随机大法好)
    [Hello 2020] D. New Year and Conference (ST表,排序)
    [Hello 2020] C. New Year and Permutation (组合数学)
    Codeforces Beta Round #7 C. Line (扩展欧几里德)
    扩展欧几里德
    Codeforces Round #349 (Div. 2) D. World Tour (最短路)
    HDU 4052 Adding New Machine (线段树+离散化)
    HDU 3265 Posters (线段树+扫描线)(面积并)
    HDU 1828 Picture (线段树+扫描线)(周长并)
  • 原文地址:https://www.cnblogs.com/liuchengchuxiao/p/4111949.html
Copyright © 2020-2023  润新知