- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作数寻址方式 寄存器寻址 Add R4 , R3 立即数寻址 Add R4 , #3 直接寻址 Add R1 , (1001) 寄存器间接寻址 Add R4 , (R1) 偏移寻址 Add R4 , 100(R1) 索引寻址 Add R3 , (R1 + R2) 存储器间接寻址 Add R1 , @(R3) 自增寻址 Add R1 , (R2)+ 自减寻址 Add R1, -(R2) 缩放寻址 Add R1 , 100(R2)[R3] 练习-写出下面函数的汇编代码 cswap(int v[], int k, int l) k - $5 { l-$6 int temp; v[0]-$4 if(v[k]!=v[l]) { temp=v[k]; v[k]=v[l]; v[l]=temp; } } k - $5 l-$6 v[0]-$4 cswap(int v[], int k, int l) { int temp; if(v[k]!=v[l]) { temp=v[k]; v[k]=v[l]; v[l]=temp; } } mult $2,$5,4 mult $3,$6,4 add $7,$2,$4 add $8,$3,$4 LW $9,($7) LW $10,($8) BEQ $9,$10,Label SW $9,($8) SW $10,($7) Label: JR $31 程序编译的过程GCC 程序编译的过程 很多人认为GCC只是一个C编译器,其实GCC = GNU Compiler Collection 目前,GCC可以支持多种高级语言,如 C、C++ ADA Object C JAVA Fortran PASCAL GCC下的工具 cpp — 预处理器GNU C编译器在编译前自动使用cpp对用户程序进行预处理 gcc — 符合ISO等标准的C编译器 g++ — 基本符合ISO标准的C++编译器 gcj — GCC的java前端 gnat — GCC的GNU ADA 95前端 GNU Tools—gcc gcc是一个强大的工具集合,它包含了预处理器、编译器、汇编器、链接器等组件。它会在需要的时候调用其他组件。输入文件的类型和传递给gcc的参数决定了gcc调用具体的哪些组件。 对于开发者,它提供的足够多的参数,可以让开发者全面控制代码的生成,这对嵌入式系统级的软件开发非常重要 gcc --help Linux gcc使用举例(1)源程序 gcc使用举例(2)编译和运行 gcc的编译过程 一般情况下,c程序的编译过程为 1、预处理 2、编译成汇编代码 3、汇编成目标代码 4、链接 1、预处理 预处理:使用-E参数输出文件的后缀为“.cpp” gcc –E –o gcctest.cpp gcctest.c 使用wc命令比较预处理后的文件与源文件,可以看到两个文件的差异 2、编译成汇编代码 预处理文件?汇编代码1)使用-x参数说明根据指定的步骤进行工作,cpp-output指明从预处理得到的文件开始编译2)使用-S说明生成汇编代码后停止工作 gcc -x cpp-output -S -o gcctest.s gcctest.cpp 也可以直接编译到汇编代码 gcc -S gcctest.c 3、编译成目标代码 汇编代码?目标代码 gcc –x assembler –c gcctest.s 直接编译成目标代码 gcc –c gcctest.c 使用汇编器生成目标代码 as –o gcctest.o gcctest.s testsse.o UltraEdit Objdump 4、编译成执行代码 目标代码?执行代码 gcc –o gcctest gcctest.o 直接生成执行代码 gcc –o gcctest gcctest.c testsse.o V.S. testsse gcc的高级选项 -Wall:打开所有的警告信息 根据警告信息检查源程序 修改源程序 优化编译 优化编译选项有: -O0缺省情况,不优化 -O1 -O2 -O3 等等 gcc的优化编译举例(1)考虑如下的源代码 gcc的优化编译举例(2)使用time命令统计程序的运行 GNU tools GNU tools和其他一些优秀的开源软件可以完全覆盖上述类型的软件开发工具。为了更好的开发嵌入式系统,需要熟悉如下一些软件 GCC Binutils—辅助GCC的主要软件 Gdb make cvs 二、GNU bin
您可能关注的文档
- 2017年高三语文阅读与写作.doc
- 2017年高中数学必修4课堂同步学案第一章 15 第一课时 函数y=Asin(ωx+φ)的图像(一).ppt
- 2017年第一轮中考复习世界近代史(三).ppt
- 2017年高一-政治课件-92世界多极化:在曲折中发展(课件)(新人教版必修2).ppt
- 2017年高中数学必修5课堂同步学案 121 正、余弦定理在实际中的应用.ppt
- 2017年第一轮中考复习近代史第五单元人民战争 的胜利.ppt
- 2017年高二化学(人教版)化学与自然资源的开发利用(课件).ppt
- 2017年高考社会热点精华素材.pptx
- 2017年高考数学文二轮复习课件:专题整合突破 专题1 集合、常用逻辑用语 第3讲 不等式及线性规划2-1-3.ppt
- 2017广州一模语文考前指导.ppt
- 工会代表大会运行规则及十大制度解读.docx
- 法院合同法案例分析与学习笔记.docx
- 医疗急救口头医嘱管理流程制度.docx
- 幼儿园科学实验教学设计案例.docx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5WhataretheshirtsmadeofSectionA合作探究二课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit2Ithinkthatmooncakesaredelicious课时4SectionB1a_1d习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit1Howcanwebecomegoodlearners课时3SectionAGrammarFocus_4c习题课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit5Whataretheshirtsmadeof课时4SectionB1a_1e课件新版人教新目标版.pptx
- 2025秋九年级英语全册Unit3Couldyoupleasetellmewheretherestroomsare课时3SectionAGrammarFocus_4c课件新版人教新目标版.pptx
最近下载
- (整理)事业单位考试公文写作与处理试题及参考答案.docx VIP
- 2025年“国家安全 青春挺膺”主题团日活动课件.ppt VIP
- 河北省衡水中学2026届高三上学期11月调研数学试题(含简单答案).pdf VIP
- 小学一年级数学上册试题常用字带拼音.docx VIP
- 脓毒症诊断与治疗临床规范指南(2025年版).docx VIP
- 高等物理化学之第一章:物理化学基本内容.ppt VIP
- 《富致秘录》中源线建仓法(陈雅山 著 王明森 点校).pdf VIP
- 中国共产主义青年团团员登记表(2025年版).docx VIP
- TGDNAS 037—2023结膜囊冲洗技术规范.doc VIP
- T_GDNAS 037—2023(结膜囊冲洗技术规范).pdf VIP
原创力文档


文档评论(0)