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

第4章(伪指令)课件.ppt

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

第4章 嵌入式程序设计基础 ; ;第四章 嵌入式系统程序设计基础 ;一.概述 ? ARM汇编程序由机器指令、伪指令和宏指令组成; ? 伪指令与伪操作的助记符没有对应的“操作码”,汇编处理时助记符会被“替换”成相应的ARM/Thumb指令(序列),所以称之为“伪”指令; ? 伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,仅在汇编过程中起作用,一旦汇编结束其使命也就完成了; ? ARM和Thumb指令集均有各自对应的伪指令,且只能在自己的指令集中使用。 ; 在ARM的汇编程序中,伪指令分为:地址装载伪指令、符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令及其他伪指令等。 二.伪指令详述 2.1 地址装载伪指令 2.1.1 ADR(小范围的装载地址伪指令) ·功能 将一个地址装载到“寄存器”中,这个地址可以是程序偏移(PC偏移)或寄存器偏移的地址(指的是目标文件中替换伪指令的实际指令的寻址方式,在伪指令中不体现寻址方式)。; ·语法; ·操作 汇编处理时将ADR替换为一条标准指令:通常情况下,如果是向前偏移(高地址方向),则替换为一条ADD指令;否则替换为一条SUB指令;如果无法用一条指令实现替换,则报错。; ·使用 ADR读取的地址是与位置无关的,因为读取的是偏移量而不是绝对地址,如上图中的0xc和0x10。;2.1.2 ADRL(中等范围的装载地址伪指令) ·功能 该指令的功能和ADR类似,但是加载地址的范围较大。 ·语法; ·操作 该指令会被翻译为2条指令的组合----ADR/ADD或ADR/SUB的组合,从而实现较大地址偏移的加载,如果2条指令无法实现则报错。 如果指令中没有“语句标号”只有数值表达式,则数值表达式代表一个地址偏移量且表示从程序开始出的偏移地址(此时,这个地址是位置相关的)。;掳帖唯扫尖也厨谩源隋婴忿诣乘传似眨鸽揪协捍装室囚缝餐境匀芝础妆执第4章(伪指令)课件第4章(伪指令)课件; ·使用 该伪指令Thumb汇编器不支持。 2.1.3 LDR(大范围的装载地址伪指令) ·功能 LDR用来装载一个32bit常数或一个地址到寄存器。 在ARM指令集中可以使用数字常量,但数字常量一般是作为第二操作数使用的,而ARM对数字常量的第二操作数有诸多限制(必须为移位后构成的数),给寄存器加载一个任意数往往不能使用一条指令实现,而使用伪操作LDR则可以解决此类问题。;·语法及操作;读螺厢辰膝碗娶薄我晃塑摊夷出淋渡代妆叠领暗筏凤恋疫擞字匆染锨潜野第4章(伪指令)课件第4章(伪指令)课件; ·举例 ; 该指令常用于加载芯片外围功能部件的寄存器地址(32位立即数),以实现各种控制操作: a. 读控制寄存器 …… LDR R0, =IOPIN ;加载GPIO寄存器IOPIN的地址 LDR R1, [ R0 ] ;读取IOPIN寄存器的值 …… b.写控制寄存器 …… LDR R0, =IOSET LDR R1, =0 ;设置寄存器值 STR R1, [ R0 ] ;给寄存器赋值 ……;补充 ; a. LDR在此是一条指令,把内存地址 _start 位置中的值读入r0; b. ADR是小范围的地址读取伪指令,将基于PC 相对偏移的地址读取r0 ; c. LDR在此是一条伪指令,用来将_start的地址读到r0 由此可见“LDR r0, label”这种寻址方式是可以的,汇编编译器将其转化为LDR r0, [ PC,#offset ]的形式。 ;2.1.4 NOP(空操作伪指令) ? 不产生任何结果,编译时被替换为ARM中的空操作(如MOV R0,R0),占用32位的代码空间; ? 不需要条件执行(即无条件执行),不影响CPSR的条件标志位; ? 可以用于软件延时: DELAY1 NOP NOP

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档