




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C一、GNU汇编书写格式一、混合编程和内联汇编编译【2】1.s【2】1.s和2.c编译成一个elf 【1】1.c和2.c编译成一个elf 二、gcc d:m最后的;不能省略,对于Casm,"output(asm-")tm+=input(C-")trmitta0b;tes; volatile",r01"r%\n\t""str%\n\t""str":")1子程序间通过寄存器RR来传递参数,如果参数多于四个,则多出的部分用堆栈传递,被调用的子程序在返回前无须恢复寄存器RR的内容r栈使用r0接r在子程序中,使用寄存器RR来保存局部变量,如果在子程序中使用到了RR中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进行这些操作,在程序中,通常只能使用寄存器RR来保存局部变量R12用作子程序间scratch寄存器(用于保存SP,在函数返回时使用该寄存器出栈),记作R13用作数据栈指针,记作R14用作连接寄存器,记作R15记作程序寄存器,记作四、 mbl:,STRBR,#1;CMPR#0判断是否为字符串结尾BNEstrcopy如果不是,程序跳转到strcopyMOVc,lrce>,ta{;chardesstr[]"desin;toyet,srcstr);;}ccintfcn(int,intb,int,int,int{;}m假设程序进入f时,R0中的值为itfti){,,,,;}tlSTR,,4保存返回地址lrADDR,R0计算3*i(第3个参数)ADD,,R;计算5*iSTR,SP,#-4]!第5个参数通过堆栈传递ADD,,R1;计算4*i(第4个参数)BLfcn;调用C程序ADD,,#4d五、其他实r0例二:有参数1inta=100;intc=0;( //输出列表%0-- //输入列表%1--a%2-- vodnotacecpu_nt(vo{""#e#defnePLC"I" asm"mscps_c,%\n\t"------CPU进入IRQmode "mscps_c,%3\n\t" "mscps_c,%5\n\t" "mscps_c,%7"--------回到SVCmodecodeoutput部分是空的""(stk),----------------------对应上代码中的%0"I"(offsetof(stuctstack,abt[0])),PLC(PSR_F_BITPSR_I_BITPLC(PSR_F_BITPSR_I_BIT}nputopeandstcobbest);,"I"表示立即数(Immedateopeands),cobbes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025实践中如何启动法律程序确认合同终止工程
- 年度工作回顾与展望-4
- 2025标准版汽车抵押借款合同
- 铲车维修临时合同范本
- 高一语文新学案:第二单元孔雀东南飞
- 2025智能办公软件销售合同
- 2025建筑施工合同范本(试行)
- 2024年徐州市教育局直属学校招聘真题
- 2024年宁波大学招聘真题
- 2024年陇南市国控资本投资管理集团有限公司招聘笔试真题
- 辽宁省沈阳市铁西区2024届英语三年级第二学期期中调研试题含答案
- 第13课《警惕可怕的狂犬病》 课件
- 健康饮茶知识讲座
- 《照明线路安装与维护》课程标准
- 中医春季情志养生知识讲座
- 小儿隐匿性阴茎诊疗规范
- MSOP(测量标准作业规范)测量SOP
- 免检物料管理规范(含表格)
- 频谱仪N9020A常用功能使用指南
- 方证歌诀【执业中医师中医内科】
- CBL教学法应用介绍
评论
0/150
提交评论