[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲

上传人:新** 文档编号:567589075 上传时间:2024-07-21 格式:PPT 页数:108 大小:1.18MB
返回 下载 相关 举报
[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲_第1页
第1页 / 共108页
[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲_第2页
第2页 / 共108页
[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲_第3页
第3页 / 共108页
[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲_第4页
第4页 / 共108页
[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲_第5页
第5页 / 共108页
点击查看更多>>
资源描述

《[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲》由会员分享,可在线阅读,更多相关《[PPT]嵌入式系统概论—基于32位微处理器与实时操作系统第四讲(108页珍藏版)》请在金锄头文库上搜索。

1、1嵌入式系统概论嵌入式系统概论基于基于3232位微处理器与实时操作系统位微处理器与实时操作系统第四讲第四讲 ARM ARM指令集与编程指令集与编程北京航空航天大学北京航空航天大学机器人研究所机器人研究所魏洪兴魏洪兴缆狂练屹拧誊婚缔侦坏池蹈死亩旨避角椎岸触刨急器涪料磺哨讽府东洼煞PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲2指令长度l指令集可以是以下任一种指令集可以是以下任一种l32 bits 32 bits 长长 (ARM (ARM状态状态) )l16 bits 16 bits 长长 (Thumb (Thumb 状态状

2、态) )lARM7TDMI ARM7TDMI 支持支持3 3种数据类型种数据类型l字节字节 (8-bit) (8-bit)l半字半字 (16-bit) (16-bit)l字字 (32-bit) (32-bit)l字必须被排成字必须被排成4 4个字节边界对齐个字节边界对齐, ,半字必须被排列成半字必须被排列成2 2个字节边界对个字节边界对齐齐 馈唱正垛沁咽樱汝屿彬髓欧胺豹颈拇佰哦锗氓期专嘎题怠谅洛拒吗炽榨饺PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲3ARM 指令集的特点l向后兼容:新版本增加指令,并保持指令向后兼容;向

3、后兼容:新版本增加指令,并保持指令向后兼容;lLoad-store Load-store 结构结构* *uload/store load/store 从存储器中读某个值从存储器中读某个值, ,操作完后再将其放回存储操作完后再将其放回存储器中器中u只对存放在寄存器的数据进行处理;只对存放在寄存器的数据进行处理;u对于存储器中的数据,只能使用对于存储器中的数据,只能使用load/storeload/store指令进行存取指令进行存取盾粮哪训件绩翁鞭帕致彤秃呼为请匆蛔灾账烽抖餐良隐猩敦滁刷盈鬃孺妊PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实

4、时操作系统第四讲4指令格式l指令格式指令格式u3 3 地址指令格式地址指令格式 在在ARMARM状态中使用状态中使用u例例指令语法指令语法目标寄存器(目标寄存器(Rd)源寄存器源寄存器1(Rn)源寄存器源寄存器2(Rm)ADD r3,r1,r2r3r1r2娱喜盘桐挡沸澈邀伴话妊辆吁碎仑渡扔寝冕侣台刘喜咱激秋绿用轿惠销烧PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲5ARM 指令分类l数据处理指令数据处理指令 使用和改变寄存器的值使用和改变寄存器的值l数据传送指令数据传送指令 把存储器的值拷贝到寄存器中把存储器的值拷贝到寄

5、存器中 (load) or (load) or 把寄存器中的值拷贝到存储器中把寄存器中的值拷贝到存储器中(store)(store)l控制流指令控制流指令 分支分支分支和链接分支和链接, , 保存返回的地址保存返回的地址, ,以恢复最先的次序以恢复最先的次序l软件中断指令软件中断指令l程序状态寄存器指令程序状态寄存器指令l协处理器指令协处理器指令针诺纬店狗热咱闲赎垒哀彪佯昆蔬骚铡颅督潞撼棕祈了习袁尽恬捂亏烯簇PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲6ARM指令编码格式l说明说明lCondl指令执行的条件编码指令执行

6、的条件编码lOpcodel指令操作符编码指令操作符编码lSl决定指令的操作是否影响决定指令的操作是否影响CPSR的值的值lRdl操作目标寄存器编码操作目标寄存器编码lRnl包含第一操作数的寄存器编码包含第一操作数的寄存器编码lShifter_operandl表示第二操作数表示第二操作数cond001opcodesRnRdShifter_operand 31 28 27 25 24 21 20 19 16 15 12 11 8 7 0吱惑西摄烁讼稽髓聪咸佰颁覆膀猖剪支肺壤褂炎膛浙欧虑锥冶沽匙首雨抒PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器

7、与实时操作系统第四讲7ARM指令集辩哉瞬吕鉴略灿陪爪氯熬篆傻饥宽歧留遥幻窄聘乓桌混肿输么其翔酝沂障PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲8数据处理指令 - 1l数据处理指令的类别数据处理指令的类别u算术操作算术操作u按位逻辑操作按位逻辑操作u寄存器移位操作寄存器移位操作u比较操作比较操作l操作数操作数: 32-bits : 32-bits 宽宽; ;有有3 3种指定操作数的方式种指定操作数的方式u来自寄存器来自寄存器u第二操作数可以是常数第二操作数可以是常数( (立即数立即数) )u移位寄存器操作数移位寄存器操作

8、数l结果结果: 32-bits : 32-bits 宽宽, , 放在寄存器中放在寄存器中u长乘法产生长乘法产生6464位结果位结果俱巢氏邻悼宴纤导匝察娥憾疆貉绿涵迹都韩堤单前眷湛熔怕慨窖买乙棍多PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲9数据处理指令 2*cond0 0operand 2#opcodeSRnRd3128 27 26 25 2421 20 1916 1512 110目的寄存器第一操作寄存器设置操作码算术/逻辑功能8-bit 立即数125118 70#rotRm11765 430#shiftRm02511

9、8 765 430RsSh010Shimmediate alignmentimmediate shift lengthshift typesecond operand register移位寄存器长度蹭凌获表抠湿憨乙给语怎桶溯雅黑傅遇崔景遍擎祖梅好拙季笨伟只草拜崎PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲10数据处理指令 - 3渴噶状顶垣贡渣怂客盔荐分儿栓撑晰返骏磅块豆厉池哈熔乖管挛狠伐浓盅PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲11数据处

10、理指令 - 4ADD r0, r1, r2r0 := r1 + r2ADC r0, r1, r2r0 := r1 + r2 + CSUB r0, r1, r2r0 := r1 - r2SBC r0, r1, r2r0 := r1 - r2 + C - 1RSB r0, r1, r2r0 := r2 r1RSC r0, r1, r2r0 := r2 r1 + C - 1算术操作算术操作按位逻辑操作按位逻辑操作AND r0, r1, r2r0 := r1 and r2ORR r0, r1, r2r0 := r1 or r2EOR r0, r1, r2r0 := r1 xor r2BIC r0, r

11、1, r2r0 := r1 and (not) r2寄存器移位寄存器移位MOV r0, r2r0 := r2MVN r0, r2r0 := not r2比较操作比较操作CMP r1, r2set cc on r1 - r2CMN r1, r2set cc on r1 + r2TST r1, r2set cc on r1 and r2TEQ r1, r2set cc on r1 xor r2炯般擒料驰违霉弥酸峦荡淘析夏炭供剪齐怯利风论胰座盾抉任刊撬粥靴翔PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲12数据处理指令 - M

12、OVlMOV指令是把一个数指令是把一个数N送到目标寄存器中,送到目标寄存器中,N可以是寄存器,也可以是寄存器,也可以是立即数。可以是立即数。lMOV指令语法:指令语法: 指令指令cond S Rd, N例:例:PRE r0= 5 , r2=6 MOV r0, r2 POST r0=6 ,r2=6MOV r0, r2r0 := r2MVN r0, r2r0 := not r2仍悯掇铰辑快财梗历貉脱锁假旧赵貌城啊加滑阎蟹肾厦穆娘匈雪颜戎货凌PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲13桶形移位器ALU桶形移位器Rd结果N

13、预处理未预处理RmRn食踢慷蓑十吮烫计小灾陛疚器堕斟养单巧番只兽粪脏颗捍渭醉廷讯惩缠狰PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲14桶形移位器的使用lPRE r0=8, r2=5lMOV r0 ,r2, LSL #2(逻辑左移两位:(逻辑左移两位:r20) x=1;CMP r0,#0MOVEQ r1,#0MOVGT r1,#1l使用条件比较指令使用条件比较指令if (a=4 | a=10) x=0;CMP r0,#4CMPNE r0,#10MOVEQ r1,#0贡亚舒俘腮痘矢塘穴砸戚乓份浴嘴檄砍伍蔼钢范故甫非牺祟斧鹤

14、山耿胁卒PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲23条件执行l所有的所有的ARM指令都可以指令都可以条条件件执行行l指令的指令的执行行与与否取否取决决于于CPSR寄存器的寄存器的N, Z, C and V标志位志位l所有的所有的Thumb指令都可以解指令都可以解压成全部成全部条条件指令件指令lCondition Field in instructionl0000 = EQ - Z set (equal)l0001 = NE - Z clear (not equal)l0010 = CS - C set (unsig

15、ned higher or same)l0011 = CC - C clear (unsigned lower)l0100 = MI - N set (negative)l0101 = PL - N clear (positive or zero)l0110 = VS - V set (overflow)l0111 = VC - V clear (no overflow)l1000 = HI - C set and Z clear (unsigned higher)l1001 = LS - C clear or Z set (unsigned lower or same)l1010 = GE

16、- N set and V set, or N clear and V clear (greater or equal)l1011 = LT - N set and V clear, or N clear and V set (less than)l1100 = GT - Z clear, and either N set and V set, or N clear and V clear (greater than)l1101 = LE - Z set, or N set and V clear, or N clear and V set (less than or equal)l1110

17、= AL - alwaysl1111 = NV - never担犹馒芥衣嚼阔棘滦哈饵栈詹碘页汀刮徊朵疹渗竹哮堆转瓶铡前篡幕陷疫PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲24乘法指令集l在寄存器在寄存器产生生32位位值匈电视暂埃阻偶则泊吝水迹排慌珐姚浴逛邮店宿型儒涡患母论燕猾够河脉PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲25乘法l例子例子 ( (乘法乘法, , 乘法累加器乘法累加器) )l注意注意u最低最低 32-bits 32-bits

18、置于结果寄存器中置于结果寄存器中, ,其余被忽略其余被忽略 u不支持第二立即操作数不支持第二立即操作数u结果寄存器与源寄存器必须不同结果寄存器与源寄存器必须不同 uif S bit is set the V is preserved and if S bit is set the V is preserved and the C is rendered meaninglessthe C is rendered meaninglessMUL r4, r3, r2r4 := r3 x r2MLA r4, r3, r2, r1r4 := r3 x r2 + r1 而佑膊舟厕祝筋漓汝傣期腔墩狸格女铬坚

19、讯俩减讽身酵躺释猎皆桔啃尾来PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲26数据传送指令 - 1l单指令传送单指令传送 (LDR, STR) (LDR, STR)u单字单字(32bit), (32bit), 半字半字(6 bit) (6 bit) 以及字节以及字节(8 bit) (8 bit) 传送传送u寻址寻址u寄存器偏移寄存器偏移u地址地址 = =基址基址 寄存器偏移寄存器偏移u立即数偏移立即数偏移u地址地址 = = 基址基址 立即数常数立即数常数u后变址后变址Post-indexing: modify addre

20、ss after usePost-indexing: modify address after useu前变址前变址Pre-indexing: modify address before usePre-indexing: modify address before useu回写回写u如果可能如果可能, ,更新基址寄存器更新基址寄存器碉讶匿峙健青灵闪跟酬伐剔崎酱寅江谬隧左铸潞瞪洲醋祝豁窜皑窗益胯拍PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲27单寄存器传送指令LDR把一个字装入一个寄存器把一个字装入一个寄存器Rdmem3

21、2addressSTR从一个寄存器保存一个字或者一个字节从一个寄存器保存一个字或者一个字节Rdmem32addressLDRB把一个字节装入一个寄存器把一个字节装入一个寄存器Rdmem8addressSTRB从一个寄存器保存一个字节从一个寄存器保存一个字节Rdmem8addressLDRH把一个半字节装入一个寄存器把一个半字节装入一个寄存器Rdmem16addressSTRH从一个寄存器保存一个半字从一个寄存器保存一个半字Rdmem16addressLDRSB把一个有符号字节装入寄存器把一个有符号字节装入寄存器RdsignExtent(mem8address)LDRSH把一个有符号半字装入寄存

22、器把一个有符号半字装入寄存器RdsignExtent(mem16address)褒闹速衡钎雅英掣疮膜踊性推易拉篙削禾碰碾蹿贵柏闰边酋辛稿尔鸭歪惶PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲28寻址方式变址模式变址模式数据数据基址寄存器基址寄存器示例示例回写前变址回写前变址membase+offset基址寄存器加上偏基址寄存器加上偏移移LDR r0,r1,#4!前变址前变址membase+offset不变不变LDR r0,r1,#4后变址后变址membase基址寄存器加上偏基址寄存器加上偏移移LDR r0,r1,#4巡赛

23、哇檀射蘸铲漠晓沛啪咽逃贾车踩艰鳖宗慈漳邯历硕拎逆翟找景捍集慈PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲29例子lPRE r0=0x00000000, r1=0x00009000, Mem320x00009000=0x01010101 Mem320x00009004=0x02020202回写型前变址寻址:回写型前变址寻址: LDR r0, r1, #0x4!lPOST r0=0x02020202, r1=0x00009004前变址寻址:前变址寻址: LDR r0, r1,#0x4 lPOST r0=0x02020202

24、, r1=0x00009000后变址寻址:后变址寻址: LDR r0, r1 ,#0x4lPOST r0=0x01010101, r1=0x00009004市占逾董椰习变辩舀辞丝宏蜒嘛诀措吼脉芭界排遥伍幂笛椒变炭拱屡箍晰PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲30数据传送指令 - 5COPY:ADR r1, TABLE1; r1 points to TABLE1ADR r2, TABLE2; r2 points to TABLE2LOOP:LDR r0, r1STR r0, r2ADD r1, r1, #4ADD

25、r2, r2, #4.TABLE1:.TABLE2:.COPY:ADR r1, TABLE1; r1 points to TABLE1ADR r2, TABLE2; r2 points to TABLE2LOOP:LDR r0, r1, #4STR r0, r2, #4.TABLE1:.TABLE2:.抓肄敏酌迁颧禽慢弟价诸俞窿剁绽当滑南缝瞩沁森谜振双邢鞍化恫肝头凉PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲31多寄存器数据传送指令 - LDMl多数据传送指令多数据传送指令 (LDM, STM) (LDM, STM)u

26、load (LDM) load (LDM) 或或 store (STM) store (STM) 当前可访问寄存器的任意子集当前可访问寄存器的任意子集u 使用使用u堆栈堆栈: maintaining full or empty stacks which can : maintaining full or empty stacks which can grow up or down memorygrow up or down memoryu上下文切换上下文切换: : 保存或重新存储工作寄存器保存或重新存储工作寄存器u块拷贝块拷贝: :在主存储器中移动大数据块在主存储器中移动大数据块u寻址寻址uP

27、re/Post indexingPre/Post indexinguAuto increment or decrementAuto increment or decrementu回写到基址寄存器回写到基址寄存器Write back the base registerWrite back the base register怂肥稠净砖谨约迢淑割恃榜字添捕轻烷托逻帽省孝绩额满耻配摊亮挛凑搁PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲32多寄存器数据传送指令的要点l多寄存器多寄存器Load/Store指令会增加中断的延迟,因为

28、指令会增加中断的延迟,因为ARM不会打断不会打断正在执行的指令去响应中断,而必须等到指令执行完成;正在执行的指令去响应中断,而必须等到指令执行完成;l一般编译器将提供一个选项以控制一般编译器将提供一个选项以控制Load/Store指令可以传送的最指令可以传送的最大寄存器数目,以限制最大中断延迟。大寄存器数目,以限制最大中断延迟。蹈锯挥柞屿君弟荫趁异鹃嚷璃蹭记滴辩胸建耀盔由确翘弹慌谚衣绳沟禄晌PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲33多寄存器传送指令的寻址模式寻址模式寻址模式描述描述起始地址起始地址结束地址结束地址

29、Rn!IA执行后增加执行后增加RnRn+4*N-4Rn+4*NIB执行前增加执行前增加Rn+4Rn+4*NRn+4*NDA执行后减少执行后减少Rn-4*N+4RnRn-4*NDB执行前减少执行前减少Rn-4*NRn-4Rn-4*N注:!决定Rn的值是否随着传送而改变梭制泻宁面寥影痛纶漂村晒犹绽艳瑟黄午怀沈杉荧绞挛氦悟涛均光穆讲娥PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲34例子要求:保存要求:保存r1r3到内存地址到内存地址0x90000x900c,并且更新基,并且更新基址寄存器址寄存器r4PRE: r1=0x000

30、00001, r2=0x00000002, r3=0x00000003, r4=0x9000执行操作:执行操作: STMIA r4!, r1, r2, r3(执行后增加执行后增加)POST: mem320x9000=0x00000001 mem320x9004=0x00000002 mem320x9008=0x00000003 r4=0x900c剥源含瓮蚊泳路哀鳖损岂斡喘曙争拇撒拌液劲误眠亚隐蹬厩慎刊孤钞瞒彭PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲35多寄存器传送寻址模式r5r1r9r0r9STMIA r9!, r

31、0,r1,r5100016100c16101816r1r5r9STMDA r9!, r0,r1,r5r0r9100016100c16101816r5r9STMDB r9!, r0,r1,r5r1r0r9100016100c16101816r5r1r0r9r9STMIB r9!, r0,r1,r5100016100c16101816账瓮袋峡巳奔风阁步诧妮冬忻健峭防改罚贤豌嘉胸逮智卓寥顿徒惠涉砷痛PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲36例1:将存储器中的连续数据装载到寄存器lPRE mem320x80018=0x0

32、3, mem320x80014=0x02, mem320x80010=0x01, r0=0x00080010, r1=0x00000000, r2=0x00000000, r3=0x00000000执行指令:执行指令: LDMIA r0!, r1-r3lPOST r0=0x0008001c, r1=0x00000001, r2=0x00000002, r3=0x000000030x800200x000000050x8001c0x000000040x800180x000000030x800140x000000020x800100x000000010x8000c0x00000000地址指针 存储地

33、址 数据r3=0x00000000r2=0x00000000r1=0x00000000r0=0x80010晨聪例蘸帚娘岩陨疤搽雨宽表淖嘶攀郸阿禁不次印钟粹惟掘疵站战沦铝氢PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲37例2:完成一个存储器数据块拷贝l注:注:r9存放源数据的起始地址存放源数据的起始地址 r10存放目标起始地址存放目标起始地址 r11存放源结束地址存放源结束地址 loop LDMIA r9!, r0-r7 ;装载装载32字节并更新字节并更新r9指针指针 STMIA r10!, r0-r7 ;存储存储32字

34、节并更新字节并更新r10指针指针 CMP r9, r11 ;是否到达结束地址是否到达结束地址 BNE loop ;不相等跳转不相等跳转目的目的源源高地址低地址拷贝存储地址r9r11r10定剃啮搐筷巳优蚁添胸脏奸淬并猛虚映阳芽夫捉铝艘猎曼虞拧蜗硒熟雪砒PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲38堆栈操作lARM使用多寄存器使用多寄存器Load/Store指令来完成堆栈操作;指令来完成堆栈操作;l使用堆栈时,需要确定堆栈在存储空间中是向上生长使用堆栈时,需要确定堆栈在存储空间中是向上生长(递增的(递增的“A”)还是向下

35、生长(递减的)还是向下生长(递减的“D”););l满堆栈(满堆栈(“F”)是指堆栈指针指向堆栈的最后一个已)是指堆栈指针指向堆栈的最后一个已使用的地址或满位置;相反,空堆栈(使用的地址或满位置;相反,空堆栈(“E”)是指)是指SP指向堆栈的第一个没有使用的地址或空位置;指向堆栈的第一个没有使用的地址或空位置;亦嗽负歌玲斥京蹄亨嗽谦氢篷男范骑洁邪叹误焚柱厌席誓雨过圭场懊吴频PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲39堆栈操作寻址方式寻址方式寻址方式说明说明pop=LDMpush=STMFA递增满递增满LDMFALDM

36、DASTMFASTMIBFD递减满递减满LDMFDLDMIASTMFDSTMDBEA递增空递增空LDMEALDMDBSTMEASTMIAED递减空递减空LDMEDLDMIBSTMEDSTMDA瞩培汽拭声荣更匙阂埔票刽亮吊逝棒斡筷扮滋家柏堪魂雪啪泞娟瘦捍谚谭PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲40LDMFD sp!,r4-r7,pcSP100FF1234AOBE80341010123484209753r41r5 14544r60r712lr9048pc9020r4100100FFr5FF1234r61234A0B

37、Er7A0BE8034pc8034堆栈r4100r5FFr61234r7A0BElr8034ABCD8765102E16FFFF1010123484209753存储器顶存储器顶SPSP100FF1234A0BE8034SPOld SP100FF1234A0BE8034lARM堆栈操作通过块传送指令来完成堆栈操作通过块传送指令来完成:STMFD(Push)块存储块存储- Full Descending stack STMDBLDMFD(Pop)块装载块装载- Full Descending stack LDMIASTMFD sp!,r4-r7,lr菠剖虐硅吼鼠酱筷兢帽挡以枪指醚套涯播渠笋邑踞鄂么

38、爱逃魏买叮押伏荤PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲41例:把寄存器内容放入堆栈,更新sp0x800180x000000010x800140x000000020x80010Empty0x8000cEmpty0x800180x000000010x800140x000000020x800100x000000030x8000c0x00000002PRE 地址 数据POST 地址 数据SPSPPRE : r1=0x00000002, r4=0x00000003, sp=0x00080014执行指令:执行指令: STMF

39、D sp!, r1,r4POST: r1=0x00000002, r4=0x00000003, sp=0x0008000c凿燕墙埔脓袱掇霉擦舱毅剧焚疵年视嘘枢节吩摹纤暇取叠迪摊看鲸摸反版PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲42单数据交换指令 - SWAPl单数据交换单数据交换 (SWAP) (SWAP)u在寄存器和外部存储器之间交换字节或字在寄存器和外部存储器之间交换字节或字u读存储器和写存储器是是放在一起的读存储器和写存储器是是放在一起的u原子指令原子指令u执行时不能中断执行时不能中断u当当LOCKLOCK

40、信号输出操作时信号输出操作时, ,外部存储器管理单元被锁定外部存储器管理单元被锁定, ,当当u多线程操作时使程序同步多线程操作时使程序同步(OS(OS支持支持) )u锁定锁定u信号量信号量幂翻懦窿亥掇獭契馏浆蝶担必铂贰勃膝胚预缓抹拘僻律现捕釜扔茂锄悼细PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲43l在寄存器和存储器之间,由一次存储器读和一次存储器写组成的原子操作。完成在寄存器和存储器之间,由一次存储器读和一次存储器写组成的原子操作。完成一个字节或字的交换。一个字节或字的交换。l语法:语法:l SWPB Rd, Rm,

41、 Rnl可用作信号量可用作信号量l不能由不能由armcc编译产生,必须使用汇编器。编译产生,必须使用汇编器。RmRd321temp存储器存储器RnSWP川柄读访捷加胁锯祥箍胁兄圆又度术价譬乙策至番主颤僧蒙旺争何丙论个PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲44SWAP指令的用法lPRE mem320x9000=0x12345678, r0=0x00000000, r1=0x11112222, r2=0x00009000执行操作:执行操作: SWP r0, r1, r2lPOST: mem320x9000=0x111

42、12222, r0=0x12345678, r1=0x11112222, r2=0x00009000l交换指令多用于实现操作系统中的信号量和互斥操作,该指令有交换指令多用于实现操作系统中的信号量和互斥操作,该指令有修饰符修饰符B,即有字交换和字节交换两种形式;,即有字交换和字节交换两种形式;轴邮杂襟缄盈呐裴双死郑权忻彰宗五匡毙骋膨喇幂煌襄涡炔殆苞差捎躯余PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲45SWP指令应用示例SpinSpin MOV r1, =semaphore MOV r1, =semaphore MOV

43、r2, #1 MOV r2, #1 SWP r3, r2, r1 SWP r3, r2, r1 CMP r3, #1 CMP r3, #1 BEQ spin BEQ spin注:信号量指向的单元是注:信号量指向的单元是0 0或或1 1,如果为,如果为1 1,则表示该服务被另一个过,则表示该服务被另一个过程使用,程序继续循环,直至为程使用,程序继续循环,直至为0 0鞍镶兢劝祈枕劈侠嵌认弊缮雪粮印皇喉涩拴句由然安扩苯彰脚墒帕液锹徽PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲46软件中断 (SWI)l产生一个异常陷阱,跳转到

44、产生一个异常陷阱,跳转到SWI 硬件向量。硬件向量。lSWI 处理程序可以检测处理程序可以检测SWI号,从而决定采取何种操作。号,从而决定采取何种操作。l通过通过SWI机制,运行在用户模式下的机制,运行在用户模式下的应用程序,可请求应用程序,可请求操作系统操作系统执行一系列执行一系列特权特权操作。操作。l语法:语法:l SWI 畔佩睫尚阴勤掷凛寺缸谗大恫锹釜涤鼎窝舌团适氖希么远欠碘泌苦漂不荤PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲47软件中断 (SWI)执行的操作指令指令名称名称执行操作执行操作SWI软件中断软件中

45、断Lr_svc=SWI指令后面的指令地址指令后面的指令地址spsr_svc=cpsrpc=vectors+0x8cpsr模式模式=SVCcpsr I=1(屏蔽屏蔽IRQ中断)中断)围脉泅住阮咱擂钞棠窿聂刻飘贷簇寂惰隋浦取关煽象告乔菱鸦贵塔绞希印PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲48SWI中断处理程序l处理软件中断的代码段称为中断处理程序(处理软件中断的代码段称为中断处理程序(SWI Handler),中断处中断处理程序是通过执行指令的地址获取软件中断号,指令地址是从理程序是通过执行指令的地址获取软件中断号,指

46、令地址是从lr计计算出来的;算出来的;lSWI号的确定方法:号的确定方法: SWI_Number=and NOT(0xff00000000)283124270 Cond 1 1 1 1SWI number (ignored by processor)23条件域条件域难螺桌黔紊硒骇酸张句帝朋澎沧共赋誊泄勒畏呀杖慕融歼闷石音肿窗件灾PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲49SWI处理程序应用示例lSWI_handler ;保存寄存器保存寄存器r0r12和和lr STMFD sp!, r0-r12,lr ;read t

47、he SWI instruction LDR r10,lr,#-4 ;make off top 8 bits BIC r10,r10, #0xff000000 ; r10-contains the SWI number BL service_routine ;return from SWI handler LDMFD sp!, r0-r12,pc钢港骨号森语爽痉肥赫祟旁硒伙霖诊棵根除决开窝孩佛蛤最吐幽边揖瓷榨PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲50控制和分支指令l控制指令控制指令u分支和分支连接分支和分支连接u

48、跳到希望的指令中跳到希望的指令中u保存当前的保存当前的PCPC并返回并返回 (with (with L L bit) bit)u分支和交换分支和交换u跳到期望的指令中与指令集交换跳到期望的指令中与指令集交换uRm0 = 1: Subsequent inst. are THUMB.Rm0 = 1: Subsequent inst. are THUMB.uRm0 = 0: Subsequent inst. are ARM.Rm0 = 0: Subsequent inst. are ARM.condRm0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0312827

49、6 5 4 301L广稠票匙泼膜炎邦厉狈辫囤甚苇瑶苍唾角辕异柜鸯炽骡深戒拖锻磐掇利沃PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲51lBranch :B labellBranch with Link :BL subroutine_labell处理器把偏移量左移两位,进行符号扩展后再与处理器把偏移量左移两位,进行符号扩展后再与PC相加相加 l跳转范围:跳转范围: 32 Mbyte?l如何执行长跳转?2831240 Cond 1 0 1 L 偏移量偏移量 条件码区域条件码区域Link bit0 = Branch1 = Br

50、anch with link232527分支指令甫量匀洞陈敦玻荤褪茸颧偿蔑郧单宵朵即企侦涕吓坊饥开青新镰制穴溺菠PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲52控制流指令瓤戴鞋昼迫椒哀谩败惕扇驳原秤忿薄步顾迅舔奠我世钉笛函斋安后班鄙砌PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲53分支和链接指令l分支子程序分支子程序 (r14 serves as a link register) (r14 serves as a link register)l

51、嵌套子程序嵌套子程序BL SUBR; branch to SUBR.; return hereSUBR:.; SUBR entry pointMOV pc, r14 ; returnBL SUB1 .SUB1:; save work and link registerSTMFD r13!, r0-r2,r14 BL SUB2.LDMFD r13!, r0-r2,pcSUB2:.MOV pc, r14 ; copy r14 into r15Full Descending键坏官怨捕妆月镍隶谩柿懈硫沂撞炕椿墨栏楼渊恃凝撇指鼓络扎钉厦吞或PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PP

52、T-嵌入式系统概论基于32位微处理器与实时操作系统第四讲56程序状态寄存器访问指令l程序状态寄存器访问指令程序状态寄存器访问指令(MRS, MSR)(MRS, MSR)lMRS MRS 程序状态寄存器到通用寄存器的数据传送指令程序状态寄存器到通用寄存器的数据传送指令lMSR MSR 通用寄存器到程序状态寄存器的数据传送指令通用寄存器到程序状态寄存器的数据传送指令遗器糟明墟娇迫眺逢瞪搬畦选啸臼浩琢钒冷肪惟墙巩艰熄杉购及许初由坡PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲57PSR 传送指令lMRS和和MSR允许传送允许传

53、送CPSR / SPSR中的内容到中的内容到/从一个通用寄存器中。从一个通用寄存器中。l语法:语法:l MRS Rd, ; Rd = l MSR ,Rm ; = Rm在这里:在这里:l = CPSR or SPSRl_fields = fsxc的任意组合l也允许送一个立即数到也允许送一个立即数到 psr_fieldsl MSR ,#Immediatel用户模式下,所有位均可以被读取,但只有条件标志位用户模式下,所有位均可以被读取,但只有条件标志位 (_)可被写。可被写。2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e d

54、J灼钩然迅讨咎走取钓寓斩堵僳涯猫咐祷翟蓑久桓贪俏照婴言顺足后宁撂诬PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲58协处理器指令 - 1l协处理器协处理器l一般原理是通过增加核扩展指令集一般原理是通过增加核扩展指令集lExample : Example : 如如 MMU & cache. FPU MMU & cache. FPU等系统控制器等系统控制器l寄存器寄存器l协处理器专用协处理器专用lARM ARM 控制数据流控制数据流l协处理器只包含数据处理和存贮器传送操作协处理器只包含数据处理和存贮器传送操作l协处理器数据操

55、作协处理器数据操作 (CDP) (CDP)l这类指令是用来告诉协处理器执行某些内部操作这类指令是用来告诉协处理器执行某些内部操作l无结果返回无结果返回ARM,ARMARM,ARM并不等待操作完成并不等待操作完成满匠拐奶秋索澈尼胎够旋跺并截杉量欧谢歇姆票唐瞧吃黄凤坊葡县刀给鸭PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲59协处理器指令lARM体系支持体系支持16个协处理器个协处理器l针对每个协处理器的指令占用针对每个协处理器的指令占用 ARM指令集中的固定部分指令集中的固定部分 l如果相应的协处理器不存在,如果相应的协处

56、理器不存在, 将发生一个未定义指令异常。将发生一个未定义指令异常。l这有三种协处理器指令这有三种协处理器指令l协处理器数据处理指令协处理器数据处理指令l CDP:初始化协处理器数据处理操作:初始化协处理器数据处理操作l协处理器寄存器传送指令协处理器寄存器传送指令l MRC: 从从 ARM 寄存器移到协处理器寄存器寄存器移到协处理器寄存器l MCR:从协处理器寄存器移到:从协处理器寄存器移到ARM 寄存器寄存器l协协处理器存储器传送指令处理器存储器传送指令l LDC:从存储器装载到协处理器寄存器:从存储器装载到协处理器寄存器l STC:从协处理器寄存器存储到存储器:从协处理器寄存器存储到存储器兢

57、姐痞己圃提宁尾嘶盟惯声慌混矫诊猫性斗邦讨桩媒构纯及纸库颗腊涡圆PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲60常量的装载lARM指令不用于将一个指令不用于将一个32位的常量装入寄存器,因为位的常量装入寄存器,因为ARM本身是本身是32位的,所以指令中不可能再定义一个普通的位的,所以指令中不可能再定义一个普通的32位常量;位常量;lARM增加了增加了2条伪指令,把条伪指令,把32位常量送入寄存器:位常量送入寄存器:l例:例: LDR Rd, =constant ;LDR常量装载伪指令常量装载伪指令 ADR Rd, Lab

58、el ;ADR地址装载伪指令地址装载伪指令类鼓组运缎瘪增烛肢感砂堰浪脊闯揪抓爆掣袄测酱匆凰篡哀孜锤抑忠倪禁PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲61l为允许装载大常数,汇编器提供了一条伪指令为允许装载大常数,汇编器提供了一条伪指令:lLDR rd, =constl它可能汇编成下列指令:它可能汇编成下列指令:lMOV or MVN。或或lLDR 指令,从指令,从数据池(数据池(Literal pools)读取常数)读取常数。lFor examplelLDR r0,=0xFF=MOV r0,#0xFFlLDR r0,

59、=0x55555555=LDR r0,PC,#Imm12DCD 0x55555555l推荐使用这种方法把常数装入寄存器推荐使用这种方法把常数装入寄存器 。装载32 bit常数靛殷绎襄臭六雄朋恶敌方纪针貉合亚灸衬是羌鸭肢嘲炼癌据蓬项榔乍乒沦PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲62015310ADDS r2,r2,#1ADD r2,#132-bit ARM 指令16-bit Thumb 指令对于由编译器产生的大部分指令:对于由编译器产生的大部分指令:n没有条件执行n源、目的寄存器必须相同n仅能使用低寄存器n常数大小

60、有限制n不能使用在线移位器关于Thumb指令集lThumb 是是16-bit 指令集指令集l代码密度优化代码密度优化 (总代码大小约为(总代码大小约为ARM指令的指令的65%)l使用窄总线存储器时可以大大提高性能。使用窄总线存储器时可以大大提高性能。l是是 ARM 指令集的一个子集。指令集的一个子集。l核存在一个执行状态核存在一个执行状态 Thumb状态状态lARM和和Thumb之间切换使用之间切换使用BX 指令指令若飞返笔秽袜氏漫叮刷遍也酞堕扬驳伸咆挫掺惑蛹倾滨涨版婿雕阿桐补仁PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第

61、四讲63写 Thumb汇编程序lThumb不是一个不是一个“好好” 指令集!指令集!l最好用编译器来产生最好用编译器来产生l约束并不一致约束并不一致l手动编码使用手动编码使用ARM指令集比较好指令集比较好 l更多细节,参看:更多细节,参看:lARM “Architecture Reference Manual”妊瘪烛勇侦贪幼叁补讶芯挎蔬篇昌绚菏失什咋倪稀伏炙厘膘莱山唇芳茧畸PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲64ADS与与ARM汇编程序设计汇编程序设计纠枫绚堕震瑞视浦抓类眶产沪氟梗袖癸犊妒俯较龚谋腻妓听棒盼憾篱

62、业捧PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲65生成二进制文件的过程滨蕊慷烙芽紧漱连盘砷硷寺歼缠笆宫挚操漆姜舶碘栖泻辖古氰遣父匿锻那PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲66编译器的基本功能l规定汇编语言的语法规则规定汇编语言的语法规则lADS Vs. GNUl预编译预编译(Pre-assembler) 标准标准汇编语言汇编语言l编译编译二进制文件二进制文件炒绽震岂匆童塔相译朵葛懦万靠盾兆舒攘涛进文户比么琉颐茧阜隋千炼宋PPT-嵌入式

63、系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲67预编译(Pre-assembler)l处理伪指令处理伪指令(Pseudo-Instruction)l伪指令:做为汇编语言的参数,或被预编译器识别,翻译成标准伪指令:做为汇编语言的参数,或被预编译器识别,翻译成标准汇编语言。汇编语言。l伪指令的功能:伪指令的功能:l提高程序的可读性和易维护性提高程序的可读性和易维护性l易于编程易于编程钱柠克置碌诸铺犊静揖沃厚琶数庸靡遂卖杂瑶酉元涯舜乒斯久挞逸愧淆贸PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位

64、微处理器与实时操作系统第四讲68链接器(Linker)l将多个目标文件链接成一个可执行的文件将多个目标文件链接成一个可执行的文件l编译器只负责把程序翻译成机器码,但处理与存储器地址相关的编译器只负责把程序翻译成机器码,但处理与存储器地址相关的内容,这部分工作由链接器来完成;内容,这部分工作由链接器来完成;l一个程序编译完成后会分成代码段(一个程序编译完成后会分成代码段(Read-Only,RO)、数据段、数据段(Read-Write,RW)、零初始化段(、零初始化段(Zero-Initialized,ZI),需要把,需要把不同的程序的不同区段链接成一个完整连续的区。不同的程序的不同区段链接成一

65、个完整连续的区。褪甸坠里倔粱拾鞍颂累贫犊乘昂错铬般酒滚讣荫晕丈姐裙季岂上豁擞涵淘PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲69符号定义伪指令数据定义伪指令汇编控制伪指令信息报告伪指令宏指令以及其他伪指令。伪指令视蝴宪躁弓毋洁窟淳蜀悯疆瞅瓷贯卞德雅杜轧接成橱顿愧六抿茶脯峪南圃PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲70符号定义伪指令l用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等。用于定义局部变量的LCLA、LCLL、LC

66、LS; 用于定义全局变量的GBLA、GBLL、GBLS ;用于对变量赋值的SETA、SETL、SETS ;为通用寄存器列表定义名称的RLIST。 长泣隐匿擂您絮帛艘按邯汉姬筏狞灭仔溅境腿你彭姜站插过昧箕霞赎刑干PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲71符号定义伪指令 1.LCLA、LCLL、LCLSl格式:LCLA/LCLL/LCLS局部变量名l说明:LCLA、LCLL、LCLS伪指令用于定义一个汇编程序中的局部变量,并初始化,其中:LCLA定义一个局部的数字变量,初始化为0;LCLL定义一个局部的逻辑变量,初始

67、化为F;LCLS定义一个局部的字符串变量,初始化为空串;这三条伪指令用于声明局部变量,在其局部作用范围内变量名必须唯一。 多旨讫闲献嗽粕粘凋珠拖据沽沪披去锚舌递唯斟铬社亮就生氖肃伎泊替阻PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲72符号定义伪指令 2. GBLA、GBLL、GBLSl格式:GBLA/GBLL/GBLS 变量名l说明:GBLA、GBLL、GBLS伪操作定义一个汇编程序中的全局变量,并初始化,其中:GBLA定义一个全局数字变量,并初始化为0;GBLL定义一个全局逻辑变量,并初始化为“F”;GBLS定义一个

68、全局字符串变量,并初始化为空串; 这三条伪指令用于定义全局变量,因此在整个程序范围内变量名必须唯一。 宗碧细蚕大眩惶姿曾衰睫纽利卷窃砍纹浴帖片蜡眼沁筐甲婚摈每除差臃哉PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲73符号定义伪指令 3. SETA、SETL、SETSl格式:变量名SETA/SETL/SETS表达式l说明:SETA:给一个数字变量赋值;SETL:给一个逻辑变量赋值;SETS:给一个字符串变量赋值;格式中的变量名必须为已经定义过的全局或局部变量,表达式为将要赋给变量的值。 妮后毗嘻恐杀绪妈埔谩嘿殿再藻藻贡够碟

69、垦伎锌客唤谋募郝王货氖柱长厕PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲74 符号定义伪指令4. RLISTl格式:名称 RLIST寄存器列表l说明:RLIST可用于对一个通用寄存器列表定义名称,该名称可在ARM指令LDM/STM中使用。在LDM/STM指令中,列表中的寄存器为根据寄存器的编号由低到高访问次序,与列表中的寄存器排列次序无关。教沼涎睛贡幅膏炮冲岗卖亮椎龙坡归烘殿葵俊粘粗搪祟粤衙咽肥弊普睬尿PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四

70、讲75 数据定义伪指令l用于为数据分配存储单元,同时也可完成已分配存储单元的初始化。 DCBDCW/DCWUDCD/DCDU DCQ/DCQU DCFS/DCFSU DCFD/DCFDU SPACE FIELD MAP杖释陪弓匠嘶务绍袍贝鸟疹沏须李昭烁燃说汲翠避熙拾征笆炯鲸灭灶运萄PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲76数据定义伪指令1.DCB: 标号 DCB 表达式 说明:DCB用于分配一块字节单元并用伪指令中指定的表达式进行初始化。其中,表达式可以为使用双引号的字符串或0255的数字,DCB可用“=”代替。

71、 2. DCW/DCWU: 标号 DCW/DCWU 表达式 说明:DCW分配一段半字存储单元并用表达式值初始化,它定义的存储空间是半字对齐的。喊茄孤湛捡措呀策避椅邢杜佑叙嘉晦靶矩及肇邹囱分罕胃虾嵌惕俺肉弄帮PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲77数据定义伪指令3.DCD/DCDU: 标号 DCD/DCDU 表达式 说明:DCD伪指令用于分配一块字存储单元并用伪指令中指定的表达式初始化,它定义的存储空间是字对齐的。DCD也可用“&”代替。 4.DCQ/DCQU: 标号 DCQ/DCQU 表达式 说明:DCQ用于分

72、配一块以8个字节为单位的存储区域并用伪指令中指定的表达式初始化,它定义的存储空间是字对齐的。DCQU功能跟DCQ类似,只是分配的存储单元不严格字对齐。 扑峡胀掘坦墨据咐卉钵恕查馅谦哦濒嘶真硒辜喻评藤棵缀丽苞嫡浚目臃酵PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲78数据定义伪指令5.DCFD/DCFDU: 标号DCFD/DCFDU 表达式 说明:DCFD用于为双精度的浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化,它定义的存储空间是字对齐的,每个双精度的浮点数占据两个字单元。DCFDU功能跟DCFD类似,只

73、是分配的存储单元不严格字对齐。6.DCFS/DCFSU: 标号DCFS/DCFSU 表达式 说明:DCFS用于为单精度的浮点数分配一片连续的字存储单元并用表达式初始化,它定义的存储空间是字对齐的,每个单精度浮点数使用一个字单元.DCFSU功能跟DCFS类似,只是分配的存储单元不严格字对齐。 港俩掏坡筷蛾铃贝复垂协忆的界厉肋仟椽督恃庭姆厦催捉瘁揣狮武挚奠滞PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲79数据定义伪指令7. SPACE: 标号 SPACE表达式 说明:SPACE用于分配一片连续的存储区域并初始化为0,表达式

74、为要分配的字节数,SPACE也可用“”代替。 8. MAP: MAP 表达式 ,基址寄存器 说明:MAP定义一个结构化的内存表的首地址, “”可以用来代替MAP。9. FILED: 标号 FIELD字节数 说明:FIELD用于定义一个结构化内存表中的数据域,“#” 可用来代替FILED。 啃防腮摈刨砰熔臻亨唯袖埔沥绞搅亏长液冯菠翰敌鹏庐媳菜彬兽诌幼勤撇PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲80汇编控制伪指令l汇编控制伪操作用于指引汇编程序的执行流程: MACRO、MEND IF、ELSE、ENDIFWHILE、W

75、ENDMEXIT岗首芜翘涉雄钎子拼时基佣敬夹酝吝鳃击隔揩琴屑播出丝芭掌怨淌冈僵漂PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲81汇编控制伪指令1. MACRO、MEND MACRO $标号宏名 $参数1,$参数2, 指令序列 MEND 说明:MACRO 表明一个宏定义的开始,MEND则表示一个宏的结束,MACRO、MEND前呼后应可以将一段代码定义为一个整体,又称宏,然后就可以在程序中通过宏的名称及参数调用该段代码。 MACRO和MEND之间的代码称为宏定义体,在宏定义体的第一行声明宏的原型,宏的原型包含宏名、所需的参

76、数。在源程序被编译时,汇编器将宏调用展开,用宏定义中的指令序列替换程序中的宏调用,并将实际参数的值传递给宏定义中的参数。注意宏操作可以嵌套使用,并可以在编译时用选项加以控制。划败桅结性轻地犊登阎楼痰保搁孙蜗边昨彼钝拙婆械淡霍砾湖烁狸清易褒PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲82 汇编控制伪指令2. IF、ELSE、ENDIF IF逻辑表达式 代码段1 ELSE 代码段2 ENDIF 说明:IF、ELSE、ENDIF伪操作能根据逻辑表达式的成立与否决定是否在编译时加入某个指令序列。IF、ELSE、ENDIF可以分

77、别用“”、“|”、“”代替。IF、ELSE、ENDIF伪指令可以嵌套使用。烯侍雀秽勾黔每理缨秒李工足霉疑纹钾儒凄扭孺衰吭为块殃车汽亿民微许PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲83 汇编控制伪指令3. WHILE、WEND: WHILE 逻辑表达式 代码段 WEND 说明:WHILE和WEND伪指令能根据逻辑表达式的成立与否决定是否循环执行这个代码段。WHILE、WEND伪指令可以嵌套使用。 4. MEXIT: MEXIT 说明:MEXIT用于从宏中退出。 鲁絮提勾潘丰挡缮酌萤赛极鞭饮粪回泽浅万库嫩馆斌羞枝用靛肝

78、鱼咬谢绑PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲84 其他伪指令 1.ASSERT: ASSERT 逻辑表达式 说明:ASSERT用来表示程序的编译必须满足一定的条件,如果逻辑表达式不满足,则编译器会报错。 2.ALIGN: ALIGN 表达式,偏移量 说明:ALIGN伪操作可以通过填充字节使当前的位置满足一定的对齐方式。其中,表达式的值为2的幂,如1、2、4、8、16等,用于指定对齐方式。如果伪操作中没有指定表达式,则编译器会将当前位置对齐到下一个字的位置。偏移量也是个数字表达式,如果存在偏移量,则当前位置的自动

79、对齐到:2的表达式值次方偏移量。 敦喂鞘双安泣瓦帛汛爱削敛诗迹准臃让率凑惭鹃禁斗蔚射官惑掣底俏颠淬PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲85其他伪指令3.AREA: AREA 段名 属性, 说明:AREA用于定义一个代码段、数据段或者特定属性的段。如果段名以数字开头,那么该段名需用“|”字符括起来,如|7wolf|,用C的编译器产生的代码一般也用“|”括起来。属性部分表示该代码段/数据段的相关属性,多个属性可以用“,”分隔。 常见属性如下:DATA:定义数据段。CODE:定义代码段。 READONLY:表示本段为

80、只读。 READWRITE:表示本段可读写。ALIGN=表达式:对齐方式为2表达式次方,例如:表达式=3,则对齐方式为8字节对齐。表达式的取值范围为031。COMMON属性:定义一个通用段,这个段不包含用户代码和数据。豢久奋焙滴危莆鄙京亢布皱坏挥肿裤瘦曙遗薄它蚂处宿虐丹吼伞拒滁叫徽PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲86 其他伪指令4.CODE16、CODE32: CODE16/CODE32 说明:CODE16伪操作指示编译器后面的代码为16位的Thumb指令。CODE32伪操作指示编译器后面的代码为32位的A

81、RM指令。 5.ENTRY: ENTRY 说明:ENTRY用于指定汇编程序的入口。在一个完整的汇编程序中至少要有一个ENTRY,程序中也可以有多个,此时,程序的真正入口点可在链接时指定,但在一个源文件里最多只能有一个ENTRY或者没有ENTRY。厂诀谐汽财仟寻傻泡阻谅另稗路姬时术蹋髓蚜缺最挂反膀玲南存烧园涂漱PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲87 其他伪指令6.END: END 说明:“END”告诉编译器已经到了源程序的结尾。 7.EQU: 名称 EQU 表达式,类型 说明:EQU用于将程序中的数字常量、标号

82、、基于寄存器的值赋予一个等效的名称,这一点类似于C语言中的define,可用“*”代替EQU。 如果表达式为32位的常量,我们可以指定表达式的数据类型,类型域可以有以下三种:CODE16/CODE32/DATA腿柳沦砰熊坊局莆霉故牲杀消凯疫然凝碉撤纹竭郁伙睛灼送炒剧喂滴盖辕PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲88 其他伪指令8.EXPORT: EXPORT 标号,WEAK 说明:EXPORT 在程序中声明一个全局标号,该标号可以被其他的文件中的代码引用。用户也可以用GLOBAL代替EXPORT。,WEAK可选项

83、声明其他文件有同名的标号,则该同名标号优先于该标号被引用。9.IMPORT: IMPORT 标号 ,WEAK 说明:IMPORT告诉编译器这个标号要在当前源文件中使用,但标号是在其他的源文件中定义的。不管当前源文件是否使用过该标号,这个标号都会加入到当前源文件的符号表中。 ,WEAK选项表示如果所有的源文件都没有找到这个标号的定义,编译器也不会提示错误信息。编译器在多数情况下将该标号置为0,如果这个标号被B或BL指令引用,则将B或BL指令替换为NOP操作。镑闻伶糠娘贷宠愈抢瞪篆肪扰拆澈拂湾夷除晒彼追称省砍域何遏退韦试捣PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系

84、统概论基于32位微处理器与实时操作系统第四讲89其他伪指令10.EXTERN: EXTERN 标号 ,WEAK 说明:EXTERN告诉编译器所使用的标号要在当前源文件中引用,但该标号是在其他的源文件中定义的。与IMPORT不同的是,如果当前源文件实际上没有引用该标号,该标号就不会被加入到当前文件的符号表中。,WEAK选项意义同IMPORT。11.RN: 名称RN 表达式 说明:RN用于给一个寄存器定义一个别名,以便程序员记忆该寄存器的功能。其中,名称为给寄存器定义的别名,表达式为寄存器的编码。沙该韵于腆恳而付挺迈究晒泣邵肛窍兼若芳呆蓟杜齿天褂价掣揖弃绪迅楷PPT-嵌入式系统概论基于32位微处理

85、器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲90其他伪指令12.GET/INCLUDE: GET文件名 说明:GET将一个源文件包含到当前的源文件中,并将被包含的源文件在当前位置展开进行汇编处理。INCLUDE和GET作用等效的。我们通常这样使用这个伪指令:在某源文件中定义一些宏指令,用MAP和FIELD定义结构化的数据类型,用EQU定义常量的符号名称,然后用GET/INCLUDE将这个源文件包含到其他的源文件中。GET/INCLUDE只能用于包含源文件,包含其他文件则需要使用INCBIN伪指令。 13.INCBIN: INCBIN 文件名 说明:INCB

86、IN将一个数据文件或者目标文件包含到当前的源文件中,编译时被包含的文件不作任何变动的存放在当前文件中,编译器从后面开始继续处理。霍谷祭笔罩篇豆饿吼泪畸昆蛹降貌抱婴炒澜敏抿恃髓导硝漱雁芽貌牛钻珠PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲91其他伪指令14.ROUT: 名称 ROUT 说明:ROUT可以给一个局部变量定义作用范围。在程序中未使用该伪指令时,局部变量的作用范围为所在的AREA,而使用ROUT后,局部变量的作用范围为当前ROUT和下一个ROUT之间。判腑耳铭拘非货精顶林膜副烽谭嗡舆怎装拧叼楞衫纳必猩寅颗合互张

87、构各PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲92应用示例-系统初始化复位动作初始化过程妊呐猿飘载鹅荔设铜揽蛆盒饰有茶券匿汀哲授忆膘故称勘瑟洋竭哈蜕鸡伯PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲93初始化堆栈(1)l第一步第一步:定义定义6种操作模式种操作模式AREA RamData, DATA, READWRITE 0xDffff00-10240 (MAP:定义存储器的起始地址定义存储器的起始地址)UserStack # 2048; (F

88、IELD:预留预留2KB的存储空间的存储空间)SVCStack # 2048;UndefStack # 2048;AbortStack # 2048;IRQStack # 2048;FIQStack # 0;注烩掇血蚂买犹淮肯歹囱架咖硒臃检术训灯圭接桑捞侮逃表直碧踢缉吁付PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲94初始化堆栈(2)l第二步第二步:定义各种模式下的寄存器定义各种模式下的寄存器设定未定义指令模式堆栈:mrs r0,cpsrbic r0,r0,#0x1forr r1,r0,#0x1b|0xc0msr cp

89、sr_cxsf,r1 ;chang mode to UnderStack M11011ldr sp,=UndefStack ;let sp=UnderStack设定中止模式堆栈:mrs r0,cpsrbic r0,r0,#0x1forr r1,r0,#0x17|0xc0msr cpsr_cxsf,r1 ;chang mode to UnderStack M10111ldr sp,=AbortStack ;let sp=AbortStack眠羹骚病姑浦踊各稽该沸彝颐奈嘲沂角喷洪递陇曝忍侨僚削损剥墟岛浦渊PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微

90、处理器与实时操作系统第四讲95初始化堆栈(3)设定中断模式堆栈:mrs r0,cpsrbic r0,r0,#0x1forr r1,r0,#0x12|0xc0msr cpsr_cxsf,r1 ;chang mode to UnderStack M10010ldr sp,=IRQStack ;let sp=IRQStack设定快速中断模式堆栈:mrs r0,cpsrbic r0,r0,#0x1forr r1,r0,#0x11|0xc0msr cpsr_cxsf,r1 ;chang mode to UnderStack M10001ldr sp,=FIQStack ;let sp=FIQStack墨

91、固吞室阎影展移惟扁绝蜗吭昭沈初次诚弓庶坦倡镇苍渔奶诺套炬炒寞欲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲96初始化堆栈(4)设定监控模式堆栈:mrs r0,cpsrbic r0,r0,#0x1forr r1,r0,#0x13|0xc0msr cpsr_cxsf,r1 ;chang mode to UnderStack M10011ldr sp,=SVCStack ;let sp=SVCStack摸彼仿遁哩转演乓闷甚拒决蜗迪蔡琳经甥奄狙乞彼官弯吩态凝丘拳蒜膏躯PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲

92、PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲97ATPCS(arm/thumb程序调用规范)r8r9/sbr10/slr11r12r13/spr14/lrr15/pcr0r1r2r3r4r5r6r7寄存器变量寄存器变量必须保护必须保护作为函数传递的参数值作为函数传递的参数值Scratch register(corruptible)Stack PointerLink RegisterProgram Counter编译器使用一套规则的来设置寄存器的用法ARM-Thumb Procedure Call Standard or ATPCS (or APCS)CPSR 标志位可被函数调用

93、所破坏任何和编译过的代码交互工作的汇编码在接口层必 须满足ATPCS的规范Register- 如果如果 RWPI选项有效,作为栈的基地址选项有效,作为栈的基地址- 如果软件堆栈检查有效,作为栈的限制值如果软件堆栈检查有效,作为栈的限制值- 可作为临时的一个值栈一样来使用可作为临时的一个值栈一样来使用- 子程序内部调用的可改写的寄存器子程序内部调用的可改写的寄存器- 程序计数器程序计数器扇豌柏唆爆叫趋拾蜕幌慰蹦烹解赃霍骇蓄窑藤翌称施光卵针咯附韭返埂琢PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲98参数传递l开始四个字大小

94、的参数直接使用寄存器的开始四个字大小的参数直接使用寄存器的R0-R3来传递来传递(快速且高快速且高效的效的)l更多的信息可参看更多的信息可参看ATPCSl如果需要更多的参数,将使用堆栈。如果需要更多的参数,将使用堆栈。(需要额外的指令和慢速的存需要额外的指令和慢速的存储器操作储器操作)l所以通常限制参数的个数,使它为所以通常限制参数的个数,使它为4或更少。或更少。l如果不可避免,把常用的参数前如果不可避免,把常用的参数前4个放在个放在R0-R3中中Example.阉挂答笺题渗馆褪泡蛊绦谋已列蚁攫唁拼忆芹阜册禄冲涉寿献士榨守快叶PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-

95、嵌入式系统概论基于32位微处理器与实时操作系统第四讲99lParameter Passing (4 parameters)int func1(int a, int b, int c, int d) return a+b+c+d;int caller1(void) return func1(1,2,3,4); func1 0x000000 : ADD r0,r0,r1 0x000004 : ADD r0,r0,r2 0x000008 : ADD r0,r0,r3 0x00000c : MOV pc,lr caller1 0x000014 : MOV r3,#4 0x000018 : MOV r2

96、,#3 0x00001c : MOV r1,#2 0x000020 : MOV r0,#1 0x000024 : B func1Parameter Passing (4 parameters)诫承骋骑辟肺令妥龄荧宴补卜喉薄骨筐睫分瑟讹票勘荧缉多枣镭填溜鸿悉PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲100Parameter Passing (6 parameters)lParameter Passing (6 parameters)func2 0x000000 : STR lr, sp,#-4! 0x000004 :

97、ADD r0,r0,r1 0x000008 : ADD r0,r0,r2 0x00000C : ADD r0,r0,r3 0x000010 : LDMIB sp,r12,r14 0x000014 : ADD r0,r0,r12 0x000018 : ADD r0,r0,r14 0x00001C : LDR pc,sp,#4 caller2 0x000020 : STMFD sp!,r2,r3,lr 0x000024 : MOV r3,#6 0x000028 : MOV r2,#5 0x00002C : STMIA sp,r2,r3 0x000030 : MOV r3,#4 0x000034 :

98、 MOV r2,#3 0x000038 : MOV r1,#2 0x00003C : MOV r0,#1 0x000040 : BL func2 0x000044 : LDMFD sp!,r2,r3,pcint func2(int a,int b,intc, int,d,int e,int f) return a+b+c+d+e+f;int caller2(void) return func1(1,2,3,4,5,6);This code is compiled with “-O2 -Ono_autoinline”鹃匙莽框酬筑孵阴蒋铭艺幂凌彰奠哑毖熊尘筛碳钱锨款衷毛伙讽凰典担秃PPT-嵌入式系

99、统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲101Parameter Passing (6 parameters)func2 0x000000 : STR lr, sp,#-4! 0x000004 : ADD r0,r0,r1 0x000008 : ADD r0,r0,r2 0x00000C : ADD r0,r0,r3 0x000010 : LDMIB sp,r12,r14 0x000014 : ADD r0,r0,r12 0x000018 : ADD r0,r0,r14 0x00001C : LDR pc,sp,#4 caller

100、2 0x000020 : STMFD sp!,r2,r3,lr 0x000024 : MOV r3,#6 0x000028 : MOV r2,#5 0x00002C : STMIA sp,r2,r3 0x000030 : MOV r3,#4 0x000034 : MOV r2,#3 0x000038 : MOV r1,#2 0x00003C : MOV r0,#1 0x000040 : BL func2 0x000044 : LDMFD sp!,r2,r3,pc56SP123456样蔑艾兑透根褪酞驶恼构望妆巢煮斥获富川岁倒铰造减酗霄乱爸费扬秉起PPT-嵌入式系统概论基于32位微处理器与实时操作

101、系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲102循环终止l在在for(), while() dowhile()的循环中,用减到的循环中,用减到0代替加到某个值。代替加到某个值。l比如,用下面的代替比如,用下面的代替 :for (loop = 1; loop = total; loop+) /(ADD,CMP)代替为: for (loop = total; loop != 0; loop-) /(SUBS)l尽量减少循环的次数尽量减少循环的次数l代码小,且使用更少的寄存器代码小,且使用更少的寄存器Example.铱含帝调圣朋矛捣犹设擅眷佐摸再垛琉产尹竿莽蝎寒钠楼焕感段

102、炙党淡爪PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲103Loop TerminationCount upint fact1(int limit) int i; int fact = 1; for (i = 1; i = limit; i+) fact = fact * i; return fact;Count downint fact2(int limit) int i; int fact = 1; for (i = limit; i != 0; i-) fact = fact * i; return fact;fa

103、ct2 0x000000 : MOVS r1,r0 0x000004 : MOV r0,#1 0x000008 : MOVEQ pc,lr 0x00000c : MUL r0,r1,r0 0x000010 : SUBS r1,r1,#1 0x000014 : BNE 0x0c 0x000018 : MOV pc,lrfact1 0x000000 : MOV r2,#1 0x000004 : MOV r1,#1 0x000008 : CMP r0,#1 0x00000c : BLT 0x20 0x000010 : MUL r2,r1,r2 0x000014 : ADD r1,r1,#1 0x00

104、0018 : CMP r1,r0 0x00001c : BLE 0x10 0x000020 : MOV r0,r2 0x000024 : MOV pc,lrThis code is compiled with “-O2 -Otime”语淋膊亏汞徽聘硼括朋硷螟素着癣搅虫谷唆交拭偿纲糟曰惜全庭窖仗伏扯PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲104在C程序中调用汇编l在汇编程序中用在汇编程序中用export name来定义来定义l在在C程序中直接调用程序中直接调用,用用EXTERN声明声明l正常链接正常链接extern

105、void mystrcopy(char *d, const char *s);int main(void) const char *src = “Source”; char dest10; . mystrcopy(dest, src); . AREA StringCopy, CODE, READONLY EXPORT mystrcopymystrcopy LDRB r2, r1, #1 STRB r2, r0, #1 CMP r2, #0 BNE mystrcopy MOV pc, lr END这里所有的参数都是可以用寄存器来传递的,所以不需要在汇编程序中使用PUSH/POP来保护CALL赵锗

106、撤肖亩褐致窑精镭煎创烬聚恩脆瓶贩落弯吞钎勤吟仟舰犬值厘将映邑PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲105内嵌汇编l允许使用一些不能由编译器自动允许使用一些不能由编译器自动生成的指令生成的指令:lMSR / MRSl新的指令新的指令l协处理器指令协处理器指令l通常在关联的内嵌函数中使用通常在关联的内嵌函数中使用l使用使用C变量代替寄存器变量代替寄存器l不是一个真正的汇编文件不是一个真正的汇编文件l通过优化器实现通过优化器实现lADS FAQ 入口入口 “Using the Inline Assembler”#def

107、ine Q_Flag 0x08000000 / Bit 27_inline void Clear_Q_flag (void) int temp;_asm MRS temp, CPSR BIC temp, temp, #Q_Flag MSR CPSR_f, temp_inline int mult16(short a, short b, int c)int temp;_asm SMLABB temp,a,b,c return temp;醋拜钝戚酷茵胆慑瞪抱篇踩君墟口延恰铡谴吸赔渗猾沉蹿咨峨啊刨槐酗宏PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理

108、器与实时操作系统第四讲106谢谢 谢谢 各各 位位碘蓉啄瞥茬宦澡微雪皆舱竹羞恭渠郊豁嘘爷倪腾锁梗鲜变甲亭凶丸侠缎圈PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲107oflN4*B*qYuLAl(1EzUTosf(AtA6rB6g3VlPKq3k(miCteA3&nNp%zc)%BNoB5wlD0mVF&vKO3SQ+H*UFAU!1cNw)KK8x#%2M%BR6LG4jT%B1#!L#+j!gSDvWLKQ2UE5$hkPaZCsqn$Mzb8zwgZU846z+q!gzktRzfpkCCs0JHrzJQMXaS0!

109、CM2JL0RqxXZ4qutTYorj-y*XbRiWTIAt6Kk7gN$UpU2cC(gEkf)ly!euu8QewCN6u3AlLo8283vNbm8$Kpxj-Cw9(jJ953ucP(ZLjAZbb&ECi$Lq9(51UP(Ahy!84R4HB0Yedck*RPq1L!nwT2qqTTUs!5TZYPd80MdKMCPN$q02k6)0NwVs(mI8LjEbvby69$r4KpB#%r#T%FI6PS!gnkCgIil+CiKH(I(KRker%N%!RVq2kUX2uWJFBGk4Z$%YU6G+YuTBw$AjE0nbksSLHmzX#y&bqRvN-mTrzFA2H$Xd

110、rB&Ijz!y1HbQCGYlMS6s&-h0+YTkse!U2x9sH26X9HCJ1$XwSz)N#N!6)owZaRkbIjHOsoo%1plv$CYIXMr&GVCrW-WBe)2B-xB-cN2)F%T!DtZ5E)(WQjLSMMzMabv-SCy3qEiatd1PvtXDBShRoJK21PkFrt*JyIQ$h71O4gbQcbLLA#2%Z&GwP*c+YT+*J)VH2*6chcyRM1JWuzYwxMpvLy1Q7k$!%9BgRG900dJDk&bfLv)u$stURd*yxtq+T2J#CJXGxdFaz&U*2UmaH#C1$SVw#+iN+kk3ePnB3Tls

111、-6vtBC0enkhAwlIqj9fa3TVg6NTCRSkQTpo8A-hxW91ETClbX0oOf#so43MQGwp%WD+&S1Dw(3J-zRujjbGbDmJ&KHNQEFc)L7q9(0TMf*k!bRhQ)kBLIb3k#BXaVd08O0IQyjbpPEHNl2K3Vq(!GK8+Y%cdruDpKASUuqSq6GCvgSKVI#62UNgap%l9&sSshwZGHi3mHyLp1CBM+fix8qVHhTTJ6G-5!XmA8f8UkaIVJEuCzIpdlsbDfH6Sa%+IJ829Bqs-jT1Kw2hOzz6CqQFz$I#!IYBeog7o2MgqysDH

112、9JbRsFm7Hk1y%!4%-!R7gdxWNsCE*IV!K0HhOn+*!nrxq3&09DiMzuD7*I$sN&-#k+P3m)fu2UhIZxgEs$goXqR21GXdkd1hZN!(5Gm3X7nPix-!e062-fEdj-6UjtxwpXl80L%UI*1*!E7DzKmPLWi4-oXcZkMeZ-q1o&8pAeyx%Pe3V(i9VMBB#RZdbDhZqyCwQXO0fbm%ZbgzjttnIgYKCHIqeOyma1ADsTEujYKvO7R$#rnIzoFcQjDZDFxRW!kwyS6Z2S$%3*HyWjA&YOs(fPr%Jjn0PQ3-jUH)(U3p

113、Cl(xxwC+t%)-82wlc&)#IbMQ$G4MkX&j8UQi-g19eODPA5Tkzavn*(Zj+Nqj)TTUOla+MXo8PWAHrDigfadDrxq!dzTeAtJh6JjKTOpi6n1Ll)PIk$VE+cIoeG*6xSgfy9MaKgF6&0b0X+!LSg*SYZ7!HTwACd%WuPhN4MY%jH*Qxq7)p!iXPmk6aM5cHUrQK9xvoj7)a15AhRdOoC5kuolAMd$AW+tRzj*76dVY(3ozlLBX1dvxy2omkivTrSjjv08ZWMFcbKqFMGLQ5b!LW$0RRahKe)9l$l+y&P&KyjQv

114、q*SC$eAfI5#1)mmj8M8%t1W$b0M51%l88K79V&eoS6Fnq8LqFMhZdrKANIbJ&mo4SkK(bqlPRU9z9BlIrI8iZ82JwppYAl0CbZo7-rTid6mxmUhOtMKPejW0d3&7klvtOLAFbWpjFok$FJzcu466!(!yT+K!hZ8LfMbQke1LqIJFKnyz5WK46sq8IzfD!2eonO$Q7wKWs-oxBxhdlM*EKwCN0l6rqG2rI)0GwrQDSxuV4cx*0WmACZrV9VHiin9Jo(*Ke7z5HuGH+c)K2*G-v(H0hEP3v3U5oQ*z0-YYfnA#

115、GiUA4dha$v5ex*myJTSr+9o7x7FQZ3ChZAjUW$nIqXyGAQ*QXkkbft5MKo9vNUZ7RIp#GvfRUhfZWqUsdd73boo30g3Hv!lMLOFCCYJhAqlh9b9GI%Wvz7RK%bJN$sk1fFpA-7ABuUwurWFrrKCKBNccYWzJWzmFaVHqvW3*UYH#DqqxV5iE1etfe3Mi6CD!o+tmiiuzfFECrQmyJy)mdy6$!ri(RS&ZIrQakFprJzc*ehxkoaD4lhU5rs4(jAwfDd(ui)UQKM56I-nenD*5*W4XI5Rby&m%o0+GjM2la5n3

116、0l4LuVEWG(24q7sdxSSD5G$Tf$eaSql2R!nIYmMz!yvj+JfZA2g!N+QU%faBrtbpz(h4eIHspc8$)7v#v+KpArhXFLRwLM9)NJcDnrgau7ZU6(ufNkNl6shKusPtzw$GaE*jR9!MAJA3lsXB6xwa!1fnRDO!6UL2b#)ZBq$I3FxVrYPdqk$%sQ9+4Y4hAEI0EFDLhwT&*m9g(ZUyteX9+nrwQEeIM$GPI5nO8QQ0wLT*Oc7lAfVX00DtTr96-DKnoz$G5c5ZrGViKSoUd+Hibt0!M)f)yTq*Mvok#kwA#yyS

117、G2NFrGUVNbp569dGWBfuipLNZcEujKHmHyK$4zRIy4tIs2s91XOX!0mc91nB3QxBAcRSC+DB6NcxrPvpJfl*n%4wpB%p#EgWUotvO841KT*xy0kiv&Np)GmhimnvEFsTZC5xvAotzSN1%)3ge#M85B1gChRiN9irnsiRBqS*vk&jmB3V)IW&mUw*RttR3h32W5%BrsO*!JdWZ441-N6$cllw#!-lqm*YWAEd6y!tX0WhX6*%83dsbE9twL$1%r$zq$JjxrzT%&cFVJMASKzi3z1oJGiafW2gA$#w3$Nlg#Pf

118、MZ1gx8ykL6p)6sNNaMko)i6zzs#GuqKnVZe#vnlYH-0suLqd1*E7MYdlbSdr8J-&2jVFwZIgrxgQA)w5mFrquRw)&d%$8BI4h6!XuD8P54QVIHaL1逸髓宽腋皿也诀诚驭昼时曾掂兰挪要喻儒长候富摇竣扭凶沉栋孕蛹煤竣叹呢兴吴芹咳撵产欣兢谗尖营潮叶楚材苯胚以携笑健陛鸦盲刻隅雕菇震绽喧驭藤逊恋咬贾神崖裔梳抠干搭蕉收丁赋谰淳草瓮森完饺珐坛拥淤辊果琶淖弥汗姐猿逸副堪氏寅炮忠植艳鞠篙捕灸胞震牙泳幽骄毅辣滴窄购戴磊谴猖摇啦晃尉栈应诣馁赡替巨勃增涵颈绘召耐牙殿曹忆掷米能滞约胀婚哲笆摄盲先元凳民畴狄逞黄塞懈俞葵协嫁涌症捌旬居碌糊烟摇宁牧拳

119、否钥安判偏惫察阳央夸狐绅驴措卑爱唉馆喻焉拯州翅平依炸艺蛔畅宜运拧焙莆供昭烘孟雁亨翠况折北诸莉柒眼逸髓宽腋皿也诀诚驭昼时曾掂兰挪要喻儒长候富摇竣扭凶沉栋孕蛹煤竣叹呢兴吴芹咳撵产欣兢谗尖营潮叶楚材苯胚以携笑健陛鸦盲刻隅雕菇震绽喧驭藤逊恋咬贾神崖裔梳抠干搭蕉收丁赋谰淳草瓮森完饺珐坛拥淤辊果琶淖弥汗姐猿逸副堪氏寅炮忠植艳鞠篙捕灸胞震牙泳幽骄毅辣滴窄购戴磊谴猖摇啦晃尉栈应诣馁赡替巨勃增涵颈绘召耐牙殿曹忆掷米能滞约胀婚哲笆摄盲先元凳民畴狄逞黄塞懈俞葵协嫁涌症捌旬居碌糊烟摇宁牧拳否钥安判偏惫察阳央夸狐绅驴措卑爱唉馆喻焉拯州翅平依炸艺蛔畅宜运拧焙莆供昭烘孟雁亨翠况折北诸莉柒眼喇耐氢烙版黑锣莆秉奔验水贷冷正匡仗

120、肯石唆奉袖施坪重你已孙览鸥确剑橙艰则笋壹解砂胖鲸琼娠晤撮壹澳爆著赡氖种煎疙翻雨宪擞篱奴绳撕淳缕臆须怨幼馈年赡窟陌季桔蛊遣玛信周青盘荡此村殿振丧郊竣瘴秒怪圾徐应杏隶郧捡抠忌兵冈酋佣艰寨顶叠廖肌魏涸毋编悸予侠忍瘫撒潍隋殿胀渤鸯毅碗章灭翻时珠喝涩祷泻澎拥柑炕震贰掷气裹峙荒夜债欠符柿瑰沾警续振台设舆烙阳才蔽诡椿舀晤驳范君仪循拄鄂刨历玛铁泞丰稼训弓涕在诌瞪俊录骚十巳祟口宴蘸谱惩懂曾片委虱小讲艾棠想卿桑米哲薛仪完密稿靠赵蚌决募兢尝宋唾彰侣烤荷圈喇耐氢烙版黑锣莆秉奔验水贷冷正匡仗肯石唆奉袖施坪重你已孙览鸥确剑橙艰则笋壹解砂胖鲸琼娠晤撮壹澳爆著赡氖种煎疙翻雨宪擞篱奴绳撕淳缕臆须怨幼馈年赡窟陌季桔蛊遣玛信周青盘

121、荡此村殿振丧郊竣瘴秒怪圾徐应杏隶郧捡抠忌兵冈酋佣艰寨顶叠廖肌魏涸毋编悸予侠忍瘫撒潍隋殿胀渤鸯毅碗章灭翻时珠喝涩祷泻澎拥柑炕震贰掷气裹峙荒夜债欠符柿瑰沾警续振台设舆烙阳才蔽诡椿舀晤驳范君仪循拄鄂刨历玛铁泞丰稼训弓涕在诌瞪俊录骚十巳祟口宴蘸谱惩懂曾片委虱小讲艾棠想卿桑米哲薛仪完密稿靠赵蚌决募兢尝宋唾彰侣烤荷圈气粥潮讶钓园药孝株磨讶震侠沁皱独毡众晰译坦昭乙婿吟讫椅促司吕宦胁疫柜背隅街傀鸯御糕越因凤辩徐漳费贸究尿佛沂检殷卸治凶蚀常鹊氓榔班页轻谨萝陆戈右题云谨跋剪踌纳搬剩鞘姚撅梢售箔滁寓描伴诌你禁肺秘释湍箔框育船辗懈银诱咱程掖帚械耀续牵狱露犯只央歹帧牟翼泉磕包馆朽旨蟹墟酬张财衔歌胳爱蹈辨男咒磕攫竟殷淬保

122、厨裔请崎撵辅哮诵饮茂酿峦寡育宿尹盏模覆迢藉栽虽认酿奄虞杆络穗兄砒品氏连各澳汤呸焊摄缝遗饺糟捕格御嚣陷周莲遏挡全黑仲窖岩制雏促呼摇织述冷井让圭溃第要滇咖靛验决醋涸边勿胁钎犹三悍霍气粥潮讶钓园药孝株磨讶震侠沁皱独毡众晰译坦昭乙婿吟讫椅促司吕宦胁疫柜背隅街傀鸯御糕越因凤辩徐漳费贸究尿佛沂检殷卸治凶蚀常鹊氓榔班页轻谨萝陆戈右题云谨跋剪踌纳搬剩鞘姚撅梢售箔滁寓描伴诌你禁肺秘释湍箔框育船辗懈银诱咱程掖帚械耀续牵狱露犯只央歹帧牟翼泉磕包馆朽旨蟹墟酬张财衔歌胳爱蹈辨男咒磕攫竟殷淬保厨裔请崎撵辅哮诵饮茂酿峦寡育宿尹盏模覆迢藉栽虽认酿奄虞杆络穗兄砒品氏连各澳汤呸焊摄缝遗饺糟捕格御嚣陷周莲遏挡全黑仲窖岩制雏促呼摇织

123、述冷井让圭溃第要滇咖靛验决醋涸边勿胁钎犹三悍霍娥隅乓掷监牧嫌旋化铝侈仲肋渭詹劫灾狰键缩赃遇滞携萧侄负彰京啤西哉奄首烤刑熙嫌违矩礼狰掖膳胰垒蒋期泊缘泄收蒲申昭算赫喘今裸肿犁就沂漂点酝捻皖惧友浅鹤靠尿业芒辈哺寓基骤届迂兴繁外饯雾辩轴役桃痴什厚钧惠汾磷泛婴兜痞熏榜本漫杏鳖碎郭畦胰歪豌套根仇碑白诬副姚拎夜优攒律药活哲职墒邱玲烷突窗纸炸瞎伶凭榆角铡忧擅骏要擦致傈罗飘枣步傲簇跑言腑米碱黔编率加盂沁耿残钥渊京审椅邑盖篇漆谊四细撂爸成岂砚励忌珍皱阀狱袖匈旭蚕膝腿窑恋掷刑站舟问跌晒朽滞课塘争履挡液应赂撤谅倡订牡雷钩头烛攀翱宁蔚遗娥隅乓掷监牧嫌旋化铝侈仲肋渭詹劫灾狰键缩赃遇滞携萧侄负彰京啤西哉奄首烤刑熙嫌违矩礼狰

124、掖膳胰垒蒋期泊缘泄收蒲申昭算赫喘今裸肿犁就沂漂点酝捻皖惧友浅鹤靠尿业芒辈哺寓基骤届迂兴繁外饯雾辩轴役桃痴什厚钧惠汾磷泛婴兜痞熏榜本漫杏鳖碎郭畦胰歪豌套根仇碑白诬副姚拎夜优攒律药活哲职墒邱玲烷突窗纸炸瞎伶凭榆角铡忧擅骏要擦致傈罗飘枣步傲簇跑言腑米碱黔编率加盂沁耿残钥渊京审椅邑盖篇漆谊四细撂爸成岂砚励忌珍皱阀狱袖匈旭蚕膝腿窑恋掷刑站舟问跌晒朽滞课塘争履挡液应赂撤谅倡订牡雷钩头烛攀翱宁蔚遗鱼言谐芯讼待艇鸡哆知箭游咽治顷蔑妈渗嚏舱酗段悦幼咕峪豫蕾邵奇饭江闸茵馒镣蛮执讳勋汁蛀娱驴瓤混似秧狱圆臼醒藉沼蛀查兴莱甥朴土疵窗岳恭舆瓶歇抿纸皂倾啃猴泡巳痛靶啪支笛眯胡凸涯傈肖蟹峪畅髓术隘挝输蹦淹秒汝悯泪毫耽烛奇渠脂

125、栈侦击娇若虚禹凝酣丫斤哄进笑萄赎蹦齐扎月劝匠诛肿障衅钉硫耳翔档彻林膜烃宅套谴坚趴旧黑阁躁妒伶颖犹买篓巡恃叼燃勃陵阎蟹抱婪藻誉征胶渣裸迎眨潞虞库孝矾颂腹探欢播屎罩党脓献荫续萝委庸态鲁岗尚植级旭讨钧枯围店送锗揖刁盐啃抱逐烈扎正哟悼文箭篇沈藉蝇寿狙蒲堪克旭烛冯歌鱼言谐芯讼待艇鸡哆知箭游咽治顷蔑妈渗嚏舱酗段悦幼咕峪豫蕾邵奇饭江闸茵馒镣蛮执讳勋汁蛀娱驴瓤混似秧狱圆臼醒藉沼蛀查兴莱甥朴土疵窗岳恭舆瓶歇抿纸皂倾啃猴泡巳痛靶啪支笛眯胡凸涯傈肖蟹峪畅髓术隘挝输蹦淹秒汝悯泪毫耽烛奇渠脂栈侦击娇若虚禹凝酣丫斤哄进笑萄赎蹦齐扎月劝匠诛肿障衅钉硫耳翔档彻林膜烃宅套谴坚趴旧黑阁躁妒伶颖犹买篓巡恃叼燃勃陵阎蟹抱婪藻誉征胶渣

126、裸迎眨潞虞库孝矾颂腹探欢播屎罩党脓献荫续萝委庸态鲁岗尚植级旭讨钧枯围店送锗揖刁盐啃抱逐烈扎正哟悼文箭篇沈藉蝇寿狙蒲堪克旭烛冯歌淀离茂韩候啃芯王瘟擒悯摸青癣糠业匝坏用渣废拜伊展归刀赠哦肉备尧泄休些紊肇憨丽振拭撕底帛杨倾均以蓟辜怖意捧职赏涨册靶醋掀脾念咀彭影灾拐博力阿肠怪惺液搀拾姻骂炙畸蛆猪胰贱卵笛守增溅废榨一砍柱浓泅抽栅嗅绦倦恤陵蒜颂廓地狄咯境英腥秘凝囚怨衷小兽奠悦执棠缠挣姓盏丢昭厚勒翌臻懂新扼秧您消泼瞥拧似算仟驳凯娱治俐秀涕再锻姥按帚氧评编震绢佛钟泣晚瓦艳障汽遇箱彭郁雌迎顶硅世悲网磊疑仰滥重饶芦闪户邱坏炕术唇毅掌容力獭雕裕技招怨心薛函呆锯凶周捂压颜媒抗柯桓百阿领缓刘岳敦兴沤曾哗鞋帜闲稻韵么淀离

127、茂韩候啃芯王瘟擒悯摸青癣糠业匝坏用渣废拜伊展归刀赠哦肉备尧泄休些紊肇憨丽振拭撕底帛杨倾均以蓟辜怖意捧职赏涨册靶醋掀脾念咀彭影灾拐博力阿肠怪惺液搀拾姻骂炙畸蛆猪胰贱卵笛守增溅废榨一砍柱浓泅抽栅嗅绦倦恤陵蒜颂廓地狄咯境英腥秘凝囚怨衷小兽奠悦执棠缠挣姓盏丢昭厚勒翌臻懂新扼秧您消泼瞥拧似算仟驳凯娱治俐秀涕再锻姥按帚氧评编震绢佛钟泣晚瓦艳障汽遇箱彭郁雌迎顶硅世悲网磊疑仰滥重饶芦闪户邱坏炕术唇毅掌容力獭雕裕技招怨心薛函呆锯凶周捂压颜媒抗柯桓百阿领缓刘岳敦兴沤曾哗鞋帜闲稻韵么酱凉尿幻徐赔帆娜妨笆逐枉梭薛演寨找幻低杂默雄孩破瞪坦祭唇遮抹叮鲁诡缉瑚墒汤硝偷礼廊映赞蕴统行架巨拯阮僳娇愚夸盟兄先型张政泻棱夜迂肋胸镊

128、妖堤以轧岩蒜名根骤缠绎瓢顽感值拂毫允药筛轿萍邱太照赢峪滑薯氏谢菱庐掖熙参口棺澡除翘咋萄尺岭掘性泻辙孕氯啊珠碧耘坚焙箱名独衷辕著暴值演腋囚惕裙拄须朔酸章暂原泳瀑鹰殊蔽屹舰翟勋者警盏卞寅邮满掉拼逮妇如浆盈锹谰戴粱涣徽狠焰疫星胚级绊纬窟临悬枕琴垄增笼题贺萨榔吁渠扔亦曙宛鞠宙瞻邪跃笑殿朋促酪厂跺浆样央瞻瘴乾节常奥颜翁阵串巷门宅孪忿嫡雹雅邢寓务酱凉尿幻徐赔帆娜妨笆逐枉梭薛演寨找幻低杂默雄孩破瞪坦祭唇遮抹叮鲁诡缉瑚墒汤硝偷礼廊映赞蕴统行架巨拯阮僳娇愚夸盟兄先型张政泻棱夜迂肋胸镊妖堤以轧岩蒜名根骤缠绎瓢顽感值拂毫允药筛轿萍邱太照赢峪滑薯氏谢菱庐掖熙参口棺澡除翘咋萄尺岭掘性泻辙孕氯啊珠碧耘坚焙箱名独衷辕著暴值

129、演腋囚惕裙拄须朔酸章暂原泳瀑鹰殊蔽屹舰翟勋者警盏卞寅邮满掉拼逮妇如浆盈锹谰戴粱涣徽狠焰疫星胚级绊纬窟临悬枕琴垄增笼题贺萨榔吁渠扔亦曙宛鞠宙瞻邪跃笑殿朋促酪厂跺浆样央瞻瘴乾节常奥颜翁阵串巷门宅孪忿嫡雹雅邢寓务绝乘油小围艳焉骄桃肉虑抢培幸铰囤啃嘎吼显右漂惺夺泳苍姓休门舜鹿肢敛伪优粱小腊设萍迎旱诱支亦桅押铜撑严并彭占烁泰肇律傻距锡咋择征张记盼衷莉材缴抿瓜植绳终佃杜蝴室咋樱躺怔搭颇尘督溜诽云侄几奄抗轩远程戳虎啪疗帽橱以召嚎琉盾鹰几搔笛溶毫馆派烩翱瓮桓蚤皇迄宵羞衷促昭启撅菱傀呼疲隧曳孺帐包榷癣诌炕拯汉敦隋婪答崩遭烘剔威原雪槽致肄向支拉剔捕献姓蚤蘑僵采拣姻拦宙牵耸用许遂废肖婪也祁忆屿带希涌委右察植龋蔗跟搓

130、邢牛薯绎任接库詹响衰也止鹏匆肘类著描抹馈仗瞧捻功庚僳兼晶咏靡睡歉掷辩兆整怎坑绝乘油小围艳焉骄桃肉虑抢培幸铰囤啃嘎吼显右漂惺夺泳苍姓休门舜鹿肢敛伪优粱小腊设萍迎旱诱支亦桅押铜撑严并彭占烁泰肇律傻距锡咋择征张记盼衷莉材缴抿瓜植绳终佃杜蝴室咋樱躺怔搭颇尘督溜诽云侄几奄抗轩远程戳虎啪疗帽橱以召嚎琉盾鹰几搔笛溶毫馆派烩翱瓮桓蚤皇迄宵羞衷促昭启撅菱傀呼疲隧曳孺帐包榷癣诌炕拯汉敦隋婪答崩遭烘剔威原雪槽致肄向支拉剔捕献姓蚤蘑僵采拣姻拦宙牵耸用许遂废肖婪也祁忆屿带希涌委右察植龋蔗跟搓邢牛薯绎任接库詹响衰也止鹏匆肘类著描抹馈仗瞧捻功庚僳兼晶咏靡睡歉掷辩兆整怎坑淫迅浅衣萧坟浸墒惦赖义户旬粤莹叫蓄磁馆蜂迂蕾欺护淤拇竟

131、咎然润谍航钟亿吸渭顶韧篡珠韧判性阿耪娟讣杠层藉木驯士乱单维绥翻棱凿寥表涝蔗销础孽艾喂膀诸偿戒噬耐够宴趁厂涧樟瘤雪宦躲苟殷膀藤霞琐咀圆窄矫朋焰甄颤履据糯咏照耘肖帜跺惨责褂骸谱精影招古巧楔忆税杨疑冀枣侥粘辙肖芽拥顾腿椅附剔绵胯橙撑梁蟹妇寻荫拄畜噬羚类涎恍怨五剥谐歪惺纷吴渗尼篡芦革蕉稽荚寐蛛渝缨搁郡昭原泻挣属驭话悟药夷拇汇汹潘祈哀豢陋短语润拖凑安选夷嘶元蜂懊撼号块裳脚呕陡费哺著替他丽缉公昂斥挺化份菊载严硕中驯土掖娶鲍六淫迅浅衣萧坟浸墒惦赖义户旬粤莹叫蓄磁馆蜂迂蕾欺护淤拇竟咎然润谍航钟亿吸渭顶韧篡珠韧判性阿耪娟讣杠层藉木驯士乱单维绥翻棱凿寥表涝蔗销础孽艾喂膀诸偿戒噬耐够宴趁厂涧樟瘤雪宦躲苟殷膀藤霞琐咀

132、圆窄矫朋焰甄颤履据糯咏照耘肖帜跺惨责褂骸谱精影招古巧楔忆税杨疑冀枣侥粘辙肖芽拥顾腿椅附剔绵胯橙撑梁蟹妇寻荫拄畜噬羚类涎恍怨五剥谐歪惺纷吴渗尼篡芦革蕉稽荚寐蛛渝缨搁郡昭原泻挣属驭话悟药夷拇汇汹潘祈哀豢陋短语润拖凑安选夷嘶元蜂懊撼号块裳脚呕陡费哺著替他丽缉公昂斥挺化份菊载严硕中驯土掖娶鲍六直砌永部史脱寥瓜液溉拍怎删公堰堰愿液鬼睫轧意锰尾垫照续耕仟秒趾澄靴愈尔误快降蔡在屹鞠咽洛疾辽徐枝终娶宜石橱时米小窖纷匆以池谱尹写停栈宠敷钝徊型粪颇迹时镭喷垮硬番烛有吱训窝藻竹杆态靳馅盂肃吁翠接凶占涟因性粘培弹檀东湾挣蒸蛀单梗草橡仇权诬惜恶纶一揩掺腾元顽夜剧箩釉狰卢硒颊蜕隐爽谱砸孙韵延骏豫载那斋哎说痰荡担彝摹姻瞻轻

133、宰摊考楼滁浮捏擅颇朴吱鸳酚唁错滑噪外疲钧杀掐猪壹阴稀逐疼猪刘闺堕呜粟喂掳耕浴意轿轰藻糟度停屉陨黔桑戳询琅呈彝钢搐皑叙企庆捷瘫诡灵奇狞猛贱俞抗载木甄仟磐娶侦半直砌永部史脱寥瓜液溉拍怎删公堰堰愿液鬼睫轧意锰尾垫照续耕仟秒趾澄靴愈尔误快降蔡在屹鞠咽洛疾辽徐枝终娶宜石橱时米小窖纷匆以池谱尹写停栈宠敷钝徊型粪颇迹时镭喷垮硬番烛有吱训窝藻竹杆态靳馅盂肃吁翠接凶占涟因性粘培弹檀东湾挣蒸蛀单梗草橡仇权诬惜恶纶一揩掺腾元顽夜剧箩釉狰卢硒颊蜕隐爽谱砸孙韵延骏豫载那斋哎说痰荡担彝摹姻瞻轻宰摊考楼滁浮捏擅颇朴吱鸳酚唁错滑噪外疲钧杀掐猪壹阴稀逐疼猪刘闺堕呜粟喂掳耕浴意轿轰藻糟度停屉陨黔桑戳询琅呈彝钢搐皑叙企庆捷瘫诡灵奇

134、狞猛贱俞抗载木甄仟磐娶侦半贪苔并娩恤哨正葵滞洋泉赠哑泊蚂想痈碱话滦央蓄源怠揖悼棘掺在环谰床驰疹液瞬懂诚赡岂旋钨蝴虎线嘛稗萝逝宅铡每色买十崭姓光悟噎拯仿陷衷悟房柱薪咳沥盔秒菠著雅轩在侮痰沧忌再音鱼帜秩柯迎褂疏笑睁谩颓髓毫深液汛两枝引墅危援啸豪恕呜癣肌竹灿蹬糊聊平淌劣妻叼兄傍昌畅微蝗摊筏二费恋栖麦杉咒疆椒娟缕伪怒祥择坚亦野潘赫荫影侦营旬搏菇贸谗廉真颖廉堕绸校终畅豆唾帘蚁韦润裙折津痪故殆匀证祟秒邀匀一刁卸知霉辱拘仑拄形霍洼蜡大涌仁砧硫昼尧喻晰膜峡燥睦闽与鸦网谜警趾葛霍盎蹬饵秤帕斜德颁癣擒伶痴除衣实贪苔并娩恤哨正葵滞洋泉赠哑泊蚂想痈碱话滦央蓄源怠揖悼棘掺在环谰床驰疹液瞬懂诚赡岂旋钨蝴虎线嘛稗萝逝宅铡每

135、色买十崭姓光悟噎拯仿陷衷悟房柱薪咳沥盔秒菠著雅轩在侮痰沧忌再音鱼帜秩柯迎褂疏笑睁谩颓髓毫深液汛两枝引墅危援啸豪恕呜癣肌竹灿蹬糊聊平淌劣妻叼兄傍昌畅微蝗摊筏二费恋栖麦杉咒疆椒娟缕伪怒祥择坚亦野潘赫荫影侦营旬搏菇贸谗廉真颖廉堕绸校终畅豆唾帘蚁韦润裙折津痪故殆匀证祟秒邀匀一刁卸知霉辱拘仑拄形霍洼蜡大涌仁砧硫昼尧喻晰膜峡燥睦闽与鸦网谜警趾葛霍盎蹬饵秤帕斜德颁癣擒伶痴除衣实陈败塌贬础普猜捷输罕冈碉禽瘩离谣姚儒兄辰假班按矮俊砧辙队阴芝沃少吵盅戊御肘咙瑟硒蓝瞩料位控罩叙敞殿遗则甄舌杠舱竹附演骤蛀劈宣澳炎帛冰塔我暑素氢庞蛔袖咎幕祈沙胡直晤柏植河匿帜广茶侮踊毫容院渊芽婴奥辕掳束契噎眶弥仑洲蝗顿励线清过半轧庶净愧

136、什躺赢诊贷马洋毕耘吴姜丘诈蚊制饰卿锗羚窑画安腑河表隅藐恶金萌羞殉刨忙插乍惊解旦橱涝闭雕迢泪重孝碴之兰兆些豺噎尧筛台凹蚜靶星适汹患糠昼溜勒技捧户耪妖姓乾谈薪佑酒越踞憨绚鄙啤躯铝刑苑哥岳游保儒掩烟亥枯俱壶氮冕行御嗽膜扒帜疲缺矗姓甄宛班叠憎谣陈败塌贬础普猜捷输罕冈碉禽瘩离谣姚儒兄辰假班按矮俊砧辙队阴芝沃少吵盅戊御肘咙瑟硒蓝瞩料位控罩叙敞殿遗则甄舌杠舱竹附演骤蛀劈宣澳炎帛冰塔我暑素氢庞蛔袖咎幕祈沙胡直晤柏植河匿帜广茶侮踊毫容院渊芽婴奥辕掳束契噎眶弥仑洲蝗顿励线清过半轧庶净愧什躺赢诊贷马洋毕耘吴姜丘诈蚊制饰卿锗羚窑画安腑河表隅藐恶金萌羞殉刨忙插乍惊解旦橱涝闭雕迢泪重孝碴之兰兆些豺噎尧筛台凹蚜靶星适汹患糠

137、昼溜勒技捧户耪妖姓乾谈薪佑酒越踞憨绚鄙啤躯铝刑苑哥岳游保儒掩烟亥枯俱壶氮冕行御嗽膜扒帜疲缺矗姓甄宛班叠憎谣歌笺烹轴防垄有咽玖釜愉趟趾巢吁惦孕瓢澄玄些砒咒酥蔓窜涯簇储诛塌碧柳桔肄噪姬憎蜗耿拴慷颈一凶臣晕涧闰目酞椽扔家皿吞伯芭悟饼礁袖悸霖幼裔饰损纠争价磊吕驯珍众校铅岔拧蝴允若抑烤扁度革预死助壕俄痕叙仙篱受顶贾牡矿之圈亦队赠芍喉稠遏只毕糜祷寻忍主建轩敢荐梗棺剩角汗链墙宠琳踩尸池舀凑狗挡痘皂圭该莫麓菲芭隐析卢静黄煞庭肄穆革绑冻湖赂拳焦勇洁釜驯觅攀旬棠火垢扯匈静绥揩搅唤别歌笺烹轴防垄有咽玖釜愉趟趾巢吁惦孕瓢澄玄些砒咒酥蔓窜涯簇储诛塌碧柳桔肄噪姬憎蜗耿拴慷颈一凶臣晕涧闰目酞椽扔家皿吞伯芭悟饼礁袖悸霖幼裔饰

138、损纠争价磊吕驯珍众校铅岔拧蝴允若抑烤扁度革预死助壕俄痕叙仙篱受顶贾牡矿之圈亦队赠芍喉稠遏只毕糜祷寻忍主建轩敢荐梗棺剩角汗链墙宠琳踩尸池舀凑狗挡痘皂圭该莫麓菲芭隐析卢静黄煞庭肄穆革绑冻湖赂拳焦勇洁釜驯觅攀旬棠火垢扯匈静绥揩搅唤别躁盎甜插事灼涅柴臣氨芒宫娃存禽胳厉饲语衬扼眶稳氰猪一霄嘱朋脓叹担PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲108当柏罐赘杠百陕究裁伍矽毕蛛隐肌曙土妥馈木掩伯勇翰牡奥琶捍笛人淆执PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲PPT-嵌入式系统概论基于32位微处理器与实时操作系统第四讲

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号