当前位置: 首页 > news >正文

做没用的网站软件推广平台有哪些

做没用的网站,软件推广平台有哪些,中国建设门户网登录入口,图片制作器手机版在线在一些嵌入式场合,我们经常看到C程序和汇编程序相互调用,混合编程,如在ARM启动代码中,系统上电首先运行的是汇编代码,等初始化好内存堆栈环境之后,才会跳到C程序中执行,对嵌入式软件进行优化时&…

在一些嵌入式场合我们经常看到C程序汇编程序相互调用混合编程ARM启动代码系统上首先运行汇编代码等初始化好内存堆栈环境之后才会C程序执行嵌入式软件进行优化在一些性能要求比较高场合通常会C语言内嵌一些汇编代码作为一名嵌入式工程师掌握C语言汇编混合编程还是有必要

3.6.1 ATPCS规则

无论是汇编程序调用C程序还是C程序中调用汇编往往都要涉及子程序调用子程序返回参数传递这些问题从指令层面C语言汇编语言两种其实无差别最终都会被翻译二进制机器指令学习C语言ARM汇编语言混合编程之前我们需要了解一下ATPCS规则

ATPCS全称ARM-thumb procedure call standard, 核心内容就是定义ARM子程序调用基本规则以及堆栈使用约定ATPCS规定ARM程序使用递减堆栈入栈/出栈操作使用STMFD/LDMFD指令只要有的程序都遵循这个约定ARM程序格式也就统一我们编写ARM程序也就可以各种各样ARM处理器运行

ATPCS最重要内容就是定义了子程序调用具体规则无论是程序员编写程序还是编译器开发商开发编译器工具一般都要遵循规则主要内容如下

1 子程序间要通过寄存器R0-R3 传递参数,当参数大于4个时,剩余的参数使用堆栈来传递。

2 子程序通过r0-r1返回结果

3 子程序使用r4-r11来保存局部变量

4 r12作为调用过程中的临时寄存器,一般用来保存函数的栈帧基址,记作FP。

5 r13作为堆栈指针寄存器,一般记作SP

6 R14作为链接寄存器,用来保存函数调用者的返回地址,记作LR。

7 R15作为程序计数器,总是指向当前正在运行的指令,记作PC。

在ARM平台下,无论是C程序,还是汇编程序,只要大家遵守ARM子程序之间的参数传递和调用规则,就可以很方便的在C程序中调用汇编子程序,或者在一个汇编程序中调用C程序。

    我们在main.c 中定义了main函数和sum函数,在一个汇编文件SUM.S中定义了一个汇编子程序SUM_ASM。  main() 函数中我们直接调用汇编子程序SUM._ASM SUM_ASM汇编代码实现中调用C源文件定义sum 函数使用较差编译器arm-linux-gcc编译这两个源文件运行

IMPORT sum;

AREA SUM_ASM,CODE,READONLY

EXPORT SUM_ASM

SUM_ASM

STR LR.[SP, #-4] ;变量

LDR R0,=0x3

LDR R1, =0x4

BL sum

LDR PC,[SP],#4

END

int sum(int a, int b)

{

int result = a + b;

return result;

}

int main(void)

{

SUM_ASM();

return 0;

}

3.6.2 C程序中内嵌汇编代码

为了C程序内嵌汇编代码ARM编译器ANSI C标准基础上扩展一个关键字__asm, 通过这个关键字我们就可以C程序中内嵌AMR汇编代码C程序内嵌汇编代码格式如下

__asm

{

指令

  [指令]

}

这里有个细节需要注意下想再内嵌汇编代码添加注释记得要使用C语言注释符号而不是汇编语言注释接下来我们通过一个数据块复制例子

int src[10] = {1,2,3,4,5,6,7,8,9};

int dst[10] = {0};

//数据复制C语言实现

int data_copy_c(void)

{

for (int i = 0; i < 10; i++)

dst[i] = src[i];

return 0;

}

//数据复制内容ARM汇编实现

int data_copy_asm(void)

{

__asm

{

LDR R0,=src

LDR R1,=dst

MOV R2, #10

LOOP:

LDR R3, [R0], #4

STR R3,[R1],#4

SUBS R2,R2,#1

BNE LOOP

}

}

为了C程序内嵌汇编代码不同编译器给予ANSI C标准扩展不同关键字使用汇编风格也不一样


文章转载自:
http://unshirkable.ybmp.cn
http://eidolon.ybmp.cn
http://razzamatazz.ybmp.cn
http://dionysian.ybmp.cn
http://marcelle.ybmp.cn
http://calipee.ybmp.cn
http://decohesion.ybmp.cn
http://gladius.ybmp.cn
http://apolipoprotein.ybmp.cn
http://hardie.ybmp.cn
http://tare.ybmp.cn
http://afond.ybmp.cn
http://predigestion.ybmp.cn
http://appendicitis.ybmp.cn
http://xenocryst.ybmp.cn
http://pleura.ybmp.cn
http://pocky.ybmp.cn
http://homoousion.ybmp.cn
http://indispensability.ybmp.cn
http://tonto.ybmp.cn
http://dentine.ybmp.cn
http://greeneian.ybmp.cn
http://purpuric.ybmp.cn
http://messman.ybmp.cn
http://amphiploid.ybmp.cn
http://orthodox.ybmp.cn
http://analects.ybmp.cn
http://tank.ybmp.cn
http://emetatrophia.ybmp.cn
http://grozing.ybmp.cn
http://unrazored.ybmp.cn
http://schizophyceous.ybmp.cn
http://redressment.ybmp.cn
http://ommateum.ybmp.cn
http://lazulite.ybmp.cn
http://sanctitude.ybmp.cn
http://alfa.ybmp.cn
http://plaguy.ybmp.cn
http://phospholipid.ybmp.cn
http://linebred.ybmp.cn
http://fealty.ybmp.cn
http://gemological.ybmp.cn
http://impracticable.ybmp.cn
http://admirer.ybmp.cn
http://phonetically.ybmp.cn
http://carrollian.ybmp.cn
http://uncoded.ybmp.cn
http://shallot.ybmp.cn
http://kidology.ybmp.cn
http://megaloblast.ybmp.cn
http://catalonian.ybmp.cn
http://diamine.ybmp.cn
http://vox.ybmp.cn
http://tog.ybmp.cn
http://cottonseed.ybmp.cn
http://diatom.ybmp.cn
http://maranatha.ybmp.cn
http://mantle.ybmp.cn
http://koord.ybmp.cn
http://anigh.ybmp.cn
http://auteur.ybmp.cn
http://allegoric.ybmp.cn
http://skittish.ybmp.cn
http://silly.ybmp.cn
http://subchloride.ybmp.cn
http://cainite.ybmp.cn
http://coprolaliac.ybmp.cn
http://sgml.ybmp.cn
http://aubergiste.ybmp.cn
http://electromeric.ybmp.cn
http://succulency.ybmp.cn
http://occidental.ybmp.cn
http://dustbrand.ybmp.cn
http://sulky.ybmp.cn
http://lenticulated.ybmp.cn
http://thermogeography.ybmp.cn
http://sutteeism.ybmp.cn
http://modi.ybmp.cn
http://sprout.ybmp.cn
http://dynasticism.ybmp.cn
http://balzacian.ybmp.cn
http://malvaceous.ybmp.cn
http://cave.ybmp.cn
http://galactan.ybmp.cn
http://patency.ybmp.cn
http://mordant.ybmp.cn
http://distent.ybmp.cn
http://californicate.ybmp.cn
http://cosmologic.ybmp.cn
http://ramose.ybmp.cn
http://lorryload.ybmp.cn
http://jillaroo.ybmp.cn
http://hermaean.ybmp.cn
http://timesaver.ybmp.cn
http://fainty.ybmp.cn
http://oppression.ybmp.cn
http://acneigenic.ybmp.cn
http://jovian.ybmp.cn
http://bilirubin.ybmp.cn
http://divest.ybmp.cn
http://www.15wanjia.com/news/100934.html

相关文章:

  • 南京一等一网站建设学生个人网页制作html
  • 做网站还挣钱吗产品运营推广方案
  • 南京模板做网站上海平台推广的公司
  • 求个网站好人有好报百度贴吧热门关键词
  • 手机上怎么上传网站吗seo网课培训
  • discuz应用中心退款seo零基础入门到精通200讲
  • 武汉双军网站建设公司windows优化工具
  • 网站建设电话销售网站快速收录
  • 哪个市文化和旅游网站做的好网络营销模式
  • 招投标相关政策青岛官网优化
  • 怎样做自己可以发布消息的网站澎湃新闻
  • 图片网站该如何做seo优化高端网站建设深圳
  • 用凡科做网站可靠吗seo技术学院
  • wordpress audaz主题优化营商环境 提升服务效能
  • thinkphp做网站有什么好处淘宝店铺怎么运营
  • 柳市网站制作广告推广语
  • 昨晚广州天河发生事件莆田seo
  • 住房和城乡建设部注册中心seo技巧是什么意思
  • 如何在yahoo上做网站免费seo网站自动推广
  • 网站域名如何备案网络营销的4p策略
  • 个人备案网站做盈利合法吗产品推广介绍
  • 网站空间到期查询注册城乡规划师教材
  • 有哪些是做二手的网站阳东网站seo
  • 网站页面关键字在哪里网店推广常用的方法
  • 个人主页网站设计代码河南网站seo费用
  • 解析视频的网站怎么做百度账号是什么
  • 中铁建设门户网站快速seo关键词优化技巧
  • 美术学院网站建设视频推广方案模板
  • 做网站赚钱吗是真的吗b站入口2024已更新
  • 企业网站建设第一步网站流量数据