- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1 ARM处理器寻址方式 堆栈寻址 3.1 ARM处理器寻址方式 堆栈寻址 习题 1、“八位图数”是什么意思?如何判断一个数是不是合法的八位图数?请列举几个八位图数。 2、采用“基址加偏移量寻址”时,为什么偏移量必须在当前指令地址的前后4KB之内? 3、ARM指令的寻址方式有几种?分别指出下列指令中第二操作数的寻址方式。 STMFD SP!,{R0-R5,LR} SUB R0,R0,# 0 MOV R0,R1,LSR R2 AND R0,R1,R2 STR R0,[R10],# 4 STR R0,[R10,# 4] LDMIA R1!,{R2-R5} LDR R0,[R10] LDR R0,Label MVN R0,# 0XF2 4、前索引和自动索引、前索引和后索引、索引与自动索引各有什么区别? 5、分别执行下面两条指令有何区别? (1)LDR R3,[R0,#4] (2)LDR R3,[R0,#4]! 6、CMP与SUBS、CMN与ADDS、TST与ANDS、TEQ与EORS各有何区别? 7、LDR指令在加载存储单元地址和存储单元数据时有什么区别?请举例说明。 8、判断下列指令的正误,若不正确请说明原因。 LDR R1,[R2,R5]! STR R2,[R3],#0XFFFF8 STREQ R4,[R0,R4,LSL R5] LDR R4,[R0,R4,LSL,32] STREQ R3,[R4]!,#-0X01 LDR R4,START LDR PC,R1 LDR R1,[R3,R15] ADD R1,[R2],R3 LDR R1,[R5]! SUB R0,R1,# 4! MRS PC,CPSR LDMIA R13,{R0-R7} LDMFD SP!,{R0-R7,PC}^ MUL R1,R1,R2 MUL R3,R4,[R5] 9、ARM指令集中哪些指令可以条件执行? 10、ARM指令集中哪些指令可以影响CPSR? 11、多寄存器寻址与堆栈寻址有何异同? 12、如何使用MSR和MRS指令,通过修改CPSR寄存器,实现打开/关闭IRQ中断的两个子程序?要求不能影响CPSR的其它位。 13、将下列C语句翻译为ARM汇编指令,试分别用几种不同的指令序列来实现。 if (x==y) a=b+c; else a=b-c; if (x==y) (a==b) c=c*2 14、使用ARM指令实现两个128比特数的加法(第一个数由高到低存放在寄存器R3~R0中,第二个数由高到低存放在寄存器R7~R4中,运算结果由高到低存放到寄存器R11~R8中)。 15、某班有M名学生,本学期共有N门课程,求各学生的总成绩,并将全班同学按照总成绩从高到低排序。 3.3 ARM指令集 SWP——数据交换指令: 可在寄存器与存储器之间交换数据,常用于信号量操作 指令格式如下: SWP{cond}{B} Rd,Rm,[Rn] ;Rd←[Rn],[Rn]←Rm SWP后加B表示交换字节,否则交换32位字数据; Rm可以与Rd相同,这时就是寄存器直接与存储器互换数据; Rn必须与Rd和Rm都不相同。 例: SWP R0,R1,[R2] ;R0←[R2], [R2]←R1 * 3.3 ARM指令集 地址读取指令: ADR:小范围地址读取指令,用于将基于PC或其他寄存器相对偏移的地址值读取到寄存器中,但偏移量必须是正数并且小于1KB。 ADRL:中等范围地址读取指令,用于将PC或其他寄存器相对偏移的地址值读取到寄存器中,它比ADR加载的地址范围更广。 LDR:大范围地址读取指令,用于加载32位立即数或一个地址值到指定的寄存器。 * 3.3 ARM指令集 (2)数据处理指令 数据处理指令包括数据传输指令、算术运算指令、逻辑运算指令、比较与测试指令,以及乘法与乘加指令这几类。 数据处理指令只能对立即数和寄存器中的内容进行操作。 所有数据处理指令的第2操作数都可以是立即数、寄存器、移位后的寄存器(移位次数可由立即数或另一个寄存器给出)。 * 3.3 ARM指令集 数据传输指令MOV和MVN: 用于将第2个操作数的值或其相反数传送给目标寄存器Rd,其中, Rd可以是任一寄存器;operand2可以是立即数、寄存器或移位后的寄存器。 例: MOV R4,R5,LSL #1 ;R4←R5*2 MVN R5,#4 ;R5← - 4 * 3.3 ARM指令集 算术运算指令ADD、SUB、RSB、ADC、SBC、RSC: ADD、SUB、RSB用于两个字之间的算术运算,ADC、SBC和RSC都是带进位的运算,用于多个字的算术运
您可能关注的文档
最近下载
- 本田裂行维修手册全一本_本田SDH125T-31摩托车维修手册.pdf VIP
- 新22G04 钢筋混凝土过梁.docx VIP
- 【培训PPT】水肥一体化技术及应用.pptx
- 附录一、卫生部颁《医院信息系统基本功能规范》(草案).pdf VIP
- (完整版)仁爱英语八年级上册第二单元测试.doc VIP
- 2025年部编人教版(统编版新教材)八年级初二上册道德与法治教学计划及进度表.docx
- 植物基因技术(中国药科大学生物工程所有课件).ppt VIP
- 电子商务基础(第2版)全套PPT课件.pptx
- 《感染性休克》ppt课件.pptx VIP
- 2019版南方区域AGC发电单元调频指标计算规范.docx VIP
文档评论(0)