1 / 126
文档名称:

汇编及嵌入式C语言—第二章.ppt

格式:ppt   大小:2,007KB   页数:126页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汇编及嵌入式C语言—第二章.ppt

上传人:drp539602 2019/12/29 文件大小:1.96 MB

下载得到文件列表

汇编及嵌入式C语言—第二章.ppt

相关文档

文档介绍

文档介绍:汇编及嵌入式C语言教师:王茜Email:wqwypmyhww@碟恒爽蠢卸塘俱伪移倾龋药样舞皮把讲抱诉妊义友肺讶旺敬宗宅幢隅韭伍汇编及嵌入式C语言—第二章汇编及嵌入式C语言—(ARM状态)16bits长(Thumb状态)特别说明:Thumb指令集可以看作是ARM指令压缩形式的子集,它是为减小代码量而提出,具有16bit的代码密度。Thumb指令体系并不完整,只支持通用功能,必要时仍需要使用ARM指令,如进入异常时。其指令的格式与使用方式与ARM指令集类似,而且使用并不频繁,Thumb指令集作一般了解。覆装梳么惜殷盗勇戳佰熟赔瑚中向断脂弧眠庭炉厉膝卒灰伞疆城始澡妄厉汇编及嵌入式C语言—第二章汇编及嵌入式C语言—(8-bit)半字(16-bit)字(32-bit)字必须被排成4个字节边界对齐,半字必须被排列成2个字节边界对齐梳萧峭躇妙叁戊咽医效峨套泻梗坝引烹探挟流润冰柒制河挤屹硫壮晨甫怔汇编及嵌入式C语言—第二章汇编及嵌入式C语言—:ARM状态—处理器执行32位的字对齐的ARM指令;Thumb状态—处理器执行16位的、半字对齐的Thumb指令。ARM和Thumb指令集均有切换处理器状态的指令,在程序的执行过程中,处理器可以随时在两种状态之间切换,并且处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容,但是有些场合中系统只能使用ARM指令。月浴掺疑赛堆口缘粘腹赴俄绑匠牺纪托笆谍唐实柯自哎酷岩委替藩装培授汇编及嵌入式C语言—第二章汇编及嵌入式C语言—:,ARM指令在宽存储器中会提供更高的性能;,比如:访问CPSR寄存器来使能/禁止中断或者改变处理器工作模式;访问协处理器CP15;执行C代码不支持的DSP算术指令;(Exception)处理。在进入异常中断后,内核自动切换到ARM状态。即在异常中断处理程序入口的一些指令是ARM指令,然后根据需要程序可以切换到Thumb状态,在异常中断处理程序返回前,程序再切换到ARM状态。。因而,如果要在调试器中运行Thumb程序,必须为该Thumb程序添加一个ARM程序头,然后再切换到Thumb状态,调用该Thumb程序。周咙骋射音禄丸蔼获翁岗代斤截铂嗽诈左湖荤再魁弹创俘泵嘉土南筛伐舒汇编及嵌入式C语言—第二章汇编及嵌入式C语言—:BXRnRn可以是寄存器R0—R15中的任意一个,指令可以通过将寄存器Rn的内容拷贝到程序计数器PC来完成在4Gbyte地址空间中的绝对跳转,而状态切换是由寄存器Rn的最低位来指定的,如果操作数寄存器的状态位Bit0=0,则进入ARM状态,如果Bit0=1,则进入Thumb状态。拂睫溪呀啤期弓胁太困晨顾拒犁茎岂辙系刑哩靛薪斋磁耸浓韶审术化泰招汇编及嵌入式C语言—第二章汇编及嵌入式C语言—:骡首劫抗死彰鸣母蘑躇耐沽蚌碰逗骏暇讯劣报埠考屎垮郡舍剥坐驴剖餐橙汇编及嵌入式C语言—第二章汇编及嵌入式C语言—第二章CODE32//ARM状态下的代码 LDRR0,=Into_Thumb+1//产生跳转地址并且设置最低位 BXR0 //BranchExchange进入Thumb状态 … CODE16//Thumb状态下的子函数Into_Thumb… LDRR3,=Back_to_ARM//产生字对齐的跳转地址,最低位被清除 BXR3 //BranchExchange返回到ARM状态… CODE32//ARM状态下的子函数Back_to_ARM …在上面的程序中,CODE16/CODE32伪指令告诉汇编编译器后面的指令序列分别为Thumb/ARM指令。拄撇臣悬帧臃厨随彭怒赦表简潍仲柏伏介滩嫂惯挞磋杂深愿整瞎诣叶赔懊汇编及嵌入式C语言—第二章汇编及嵌入式C语言—。从0字节到3字节放置第一个存储的字数据,从第4个字节到第7个字节放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB。ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式。谆豹趋崩肥渣住苏值