收藏 分销(赏)

嵌入式系统结构.doc

上传人:xrp****65 文档编号:7441044 上传时间:2025-01-04 格式:DOC 页数:4 大小:345KB 下载积分:10 金币
下载 相关
嵌入式系统结构.doc_第1页
第1页 / 共4页
嵌入式系统结构.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
1.代码如下: #include<stdio.h> void main() { int number[3][3]={5,4,3,2,9,1,7,8,6}; //打乱的序列(大于0的任何int型数都可以) int a[3][3]={5,4,3,2,9,1,7,8,6}; int p=0,q=0,temp=0,num1=0,num2=0,t=0,k=0,i,j,g=0; //a=number; temp=10; for(int m=0;m<3;m++) { for(int n=0;n<3;n++) { for(i=num2;i<3;i++) { for(j=k;j<3;j++) { if(a[i][j]<temp) //记录每次最小的那个数的下标i,j { temp=a[i][j]; p=i; q=j; } } k=0; } t=number[p][q]; //第一次循环:把最小的数和第一个数交换。以后循环依次类推 number[p][q]=number[m][n]; number[m][n]=t; t=a[p][q]; a[p][q]=a[m][n]; a[m][n]=t; if(num1==3) num1=0; num1++; k=num1; temp=10; //temp=number[num2][num1]; } num2++; temp=10; k=0; // temp=number[num2][num1]; } for(int b=0;b<3;b++) //从数组中打印升序的数字 { for(int c=0;c<3;c++) { printf("%d ",number[b][c]); } printf("\n"); } } 结果抓图: 10. 局限性: 1.GNU ARM编译环境下内嵌汇编语言不能直接引用C语言中的变量。 2.不要直接向程序计数器PC赋值,程序的跳转只能通过B或BL指令实现。 一般将寄存器R0~R3、R12及R14用于子程序调用存放中间结果,因此在内嵌汇编指令中,一般不要将这些寄存器同时指定为指令中的物理寄存器。 在内嵌的汇编指令中使用物理寄存器时,如果有C语言变量使用了该物理寄存器,则编译器将在合适的时候保存并恢复该变量的值。需要注意的是,当寄存器SP、SL、FP以及SB用作特定的用途时,编译器不能恢复这些寄存器的值 通常在内嵌汇编指令中不要指定物理寄存器,因为有可能会影响编译器分配寄存器,进而可能影响代码的效率 3.C语言程序中的标号可以被内嵌的汇编指令所使用。但是只有B指令可以使用C语言程序中的标号,BL指令不能使用C语言程序中的标号。 4.内嵌汇编器不支持汇编语言中用于内存分配的伪操作。所用的内存单元的分配都是通过C语言程序完成的,分配的内存单元通过变量以供内嵌的汇编器使用 5.SWI和BL指令用于内嵌汇编时,除了正常的操作数域外,还必须增加如下3个可选的寄存器列表: 用于存放输入的参数的寄存器列表。 用于存放返回结果的寄存器列表。 用于保存被调用的子程序工作寄存器的寄存器列表。 代码: #include <stdio.h> void Main() { char *a="Hello"; char *b="ab"; my_strcopy(a,b); } void my_strcopy(char *src,char *dst) { __asm ( " loop: ldrb r4,[r0],#1;\ strb r4,[r1],#1;\ cmp r4,#0;\ bne loop;" ); } 结果抓图:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服