更好的说明寻址过程.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
更好的说明寻址过程

事项 更好理解MMU,下载23中的mmu.pdf 更好说明寻址过程 为什么我们要学指令? C 语言:y=a*(b+c) ARM指令实现:ADR R4,b LDR R0,[R4] ADR r4,c LDR r1,[r4] ADD r2,r0,r1 ADR r4,a LDR r0,[r4] MUL r2,r2,r0 ADR r4,y STR r2,[r4] 本课内容 ARM指令的条件执行 Load/Store类指令 ARM数据处理类指令 ARM转移类指令 ARM协处理器类指令 ARM杂项指令 XScale指令 5.2.2 ARM指令的条件执行 几乎所有的ARM指令均可包含一个可选的条件码,句法说明中以{cond}表示。只有在CPSR中的条件码标志满足指定的条件时,带条件码的指令才能执行。 几乎所有的ARM数据处理指令均可以根据执行结果来选择是否更新条件码标志。 条件码中的N,Z,C和V位的值将决定指令如何执行,条件码如表所示 5.2.3 Load/Store类指令 单字和无符号字节Load/Store类指令 半字和有符号字节Load/Store类指令 双字Load/Store类指令 多寄存器Load/Store类指令 预读取PLD指令 内存和寄存器交换类指令 单字和无符号字节Load/Store类指令 功能:提供ARM寄存器和内存之间单字节(8位)或单字(32位)数据的传送 格式: 1)零偏移(zero offset) LDR | STR {条件码}{B}{T} Rd ,[Rn ] ;((Rn))→Rd 零偏移指的是将Rn的内容作为传送数据的地址。 2)前变址(pre-indexed offset) LDR | STR{条件码} {B} Rd , [Rn , offset ] {!} ;((Rn)+ offset)→Rd 前变址指的是在数据传送之前,将偏移量加到Rn中,其结果作为传送数据的存储地址。若使用后缀“!”,则结果写回到Rn中,Rn不允许是R15 3)程序相对偏移(program–relative) LDR | STR{条件码} Rd , LABEL ;(LABEL)→Rd 程序相对偏移指的是由PC计算偏移量,并将PC作为Rn生成前变址指令。不能使用后缀“!”。 4)后变址(post-indexed offset) LDR | STR{条件码} {B} {T} Rd , [Rn ], offset 后变址指的是将Rn的值用作传送数据的存储器地址,数据传送后,偏移量加到Rn中,结果写回到Rn。Rn不允许是R15。LDR Rd , [Rn ] , offset 等价为:((Rn))→Rd,(Rn)+offset→Rn 例 1) :将R0中的内容存放进外设中。 LDR R1 , UARTADD ; 将UART地址放进R1中 STRB R0 , [R1] ;将数据放进外设中 … UARTADD 1000000 ;UART的地址值 例 2) :LDR R8,[R10] ;(( R10))→R8 LDRNE R2,[R5,#960]! ;Z≠1时,((R5)+960)→R2,(R5)+960→R5 STR R2,[R9,#consta-struc] ; consta-struc是常量的表达式,该常量值的范围为1~4095 STRB R0,[R3,-R8,ASR #2] ;R0→

文档评论(0)

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

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

1亿VIP精品文档

相关文档