网站大量收购闲置独家精品文档,联系QQ:2885784924

第四章复习(修改).doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM处理器的工作状态?如何进入工作状态? 答:有两种,ARM(32位字对齐)和Thumb(16位半字对齐)。 当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。 进入ARM:当操作数状态位(位0)为0,执行BX指令可以从Thumb到ARM切换;进入Thumb:当操作数状态位(位0)为1,执行BX指令可以从ARM到Thumb切换。 ARM处理器支持的7种运行模式? 答:7种模式:用户模式usr、快速中断模式fiq、外部中断模式irq、管理模式svc、系统模式sys、数据终止模式abt、未定义指令中止模式und。 大端格式和小端格式 答:大端格式和小端格式是ARM处理器数据存储格式。小端格式是低地址存放低字节数据,高地址存放高字节数据。如十六制数据从高到设最低低字节(32位)0则在0放44,0x200000001存放33,0x200000002存放22,0放11。即每8位为一个字节,就是说上面16进制为4个字节。每四个字节存放一字数据。 ARM状态下寄存器组织 答:1.通用寄存器R0—R15; 2.状态寄存器; 程序状态寄存器格式。 答:程序状态寄存器有CPSR和SPSR,格式为: N Z C V 保留位 I F T M4 M3 M2 M1 M0 Thumb状态下寄存器组织与ARM状态下寄存器组织的异同; 答:1.ARM和Thumb状态下的R0—R7一样的; 在Thumb中没有R8—R12; ARM 中的R13对应Thumb中的SP; ARM 中的R14对应Thumb中的LR; ARM 中的R15对应Thumb中的PC; 6.ARM 和Thumb中的CPSR和SPSR是一样的; ARM的异常分类及优先级 答:有七种异常并且优先级从高到低为:1.复位;2.数据中止;3.fiq;4.irq;5.指令预取;6.未定义指令;7.软件中断。 ARM异常的响应(四步) 答:1.将下一条指令的地址赋给LR,以便程序从异常返回时能从正确的位置执行; 将CPSR 的值复制给SPSR; 对CPSR进行位操作; 具体为:3.1设置模式位M[4:0],使处理器进入相应的模式; 3.2设置中断标志位M[6],禁止fiq中断; 3.3当进入Reset或者fiq时,还要设置中断标志位M[7],禁止irq中断。 PC强制赋值,使程序从相应的异常向量地址开始执行中断处理程序。 ARM异常返回(四步) 答:1.将那些被修改过的寄存器出栈; 将LR的值减去偏移量赋给PC; 恢复程序状态寄存器的状态,即SPSR_mode复制给CPSR; 清除那些被修改过的中断禁止位。 ARM指令的寻址方式(7种); 答:1.立即寻址;2.寄存器寻址;3.间接寻址;4.基址变址寻址;5.多寄存器寻址;6.堆栈寻址;7.相对寻址。 能够说明寻址指令的含义; MOV与LDR/STR的区别; 答: MOV经常用于在ARM内核中寄存器和寄存器之间或者与立即数之间传递; LDR把存储器中的数据加载到内核中; STR把内核中的数据存储到存储器中。 MRS和MSR指令的用法; 答:MRS R,CPSR/SPSR状态寄存器到通用寄存器的数据传送指令; 用法:1.异常或者进程切换时需要保存C/SPSR的值,读出程序状态寄存器的值然后保存; 2.需要改变C/SPSR的值时,将值给通用寄存器,修改后再写回状态寄存器。 MSR CPSR/SPSR,R通用寄存器到状态寄存器的数据传送指令; 用于恢复或者改变程序状态寄存器的内容。 加法、减法、乘法指令、跳转指令、数据交换指令、移位指令; 答:ADDS,ADC(带进位),SUBS,SBC(带进位),MUL R0,R1,R2;R0=R1*R2 SMULL R0,R1,R2,R3 ;R0=R2*R3的低32位; R1=R2*R3的高32位; SWAP R0,R1,[R2] ;将R2所指存储器中的内容给R0。同时,将R1的字数据给了R2所指存储器的单元。还有SWAPB字节交换。 有符号加法运算结束后CPSR寄存器值为0分析CPSR状态。 答:CPSR寄存器的值化为二进制:0110 0000 0000 0000 0000 0000 0001 0011,故N=0;Z=1;C=1;V=0;I=F=T=0;M[4:0]=10011。 所以结果为零,允许irq和fiq中断,并且为执行了ARM指令,C=0运算结果没有产生进位,V=0计算结果未溢出,处理器模式为管理模式。 用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配。 加S是因为要

文档评论(0)

yyanrlund + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档