当前位置: 首页 > news >正文

中国工程建设标准化协会官方网站/产品如何做网络推广

中国工程建设标准化协会官方网站,产品如何做网络推广,广西棋牌软件开发公司,海外seo是什么立即寻址 立即寻址也称为立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就称为立即寻址。例如以下指令: ADD R0,R…

立即寻址

立即寻址也称为立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就称为立即寻址。例如以下指令:

ADD R0,R0,#1 ;R0←R0+1

ADD R0,R0,#0x3f ;R0←R0+0x3f

在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀,对于以十六进制表示的立即数,还要求在“#”后加上“0x”或“&”。

寄存器寻址

寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。例如以下指令:

ADD R0,R1,R2 ;R0←R1+R2

该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。

寄存器间接寻址

寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。例如以下指令:

ADD R0,R1,[R2] ;

R0←R1+[R2] LDR R0,[R1] ;

R0←[R1] STR R0,[R1] ;[R1]←R0

在第一条指令中,以寄存器R2的值作为操作数的地址,在存储器中取得一个操作数后与R1相加,结果存入寄存器R0中。

第二条指令将以R1的值为地址的存储器中的数据传送到R0中。

第三条指令将R0的值传送到以R1的值为地址的存储器中。

基址变址寻址

基址变址寻址就是将寄存器(该寄存器一般称为基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下几种形式,如下指令所示:

LDR R0,[R1,#4] ;R0←[R1+4]

LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4

LDR R0,[R1],#4 ;R0←[R1]、R1←R1+4

LDR R0,[R1,R2] ;R0←[R1+R2]

在第一条指令中,将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中。

在第二条指令中,将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增4个字节。

在第三条指令中,以寄存器R1的内容作为操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增4个字节。

在第四条指令中,将寄存器R1的内容加上寄存器R2的内容形成操作数的有效地址,从而取得操作数存入寄存器R0中。

多寄存器寻址

采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16个通用寄存器的值。例如以下指令:

LDMIA R0,{R1,R2,R3,R4} ;

R1←[R0] ;

R2←[R0+4] ;

R3←[R0+8] ;

R4←[R0+12]

该指令的后缀IA表示在每次执行完加载/存储操作后,R0按字长度增加,因此,指令可将连续存储单元的值传送到R1~R4。

相对寻址

与基址变址寻址方式相类似,相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。以下程序段完成子程序的调用和返回,跳转指令BL采用了相对寻址方式:

BL NEXT ;跳转到子程序NEXT处执行

……

NEXT

……

MOV PC,LR ;从子程序返回

 堆栈寻址

堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称为堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。

ARM微处理器所支持的批量数据加载/存储指令可以一次在一片连续的存储器单元和多个寄存器之间传送数据,批量加载指令用于将一片连续的存储器中的数据传送到多个寄存器,批量数据存储指令则完成相反的操作。

LDM(或STM)指令的格式为:

LDM(或STM){条件}{类型} 基址寄存器{!},寄存器列表{∧}

LDM(或STM)指令用于从基址寄存器所指示的一片连续存储器到寄存器列表所指示的多个寄存器之间传送数据,该指令的常见用途是将多个寄存器的内容入栈或出栈。当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack)。同时,根据堆栈的生成方式,又可分为递增堆栈(Ascending Stack)和递减堆栈(Decending Stack),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。这样就有4种类型的堆栈工作方式,ARM微处理器是支持基于堆栈操作的,其Rn寄存器为R13(SP)栈指针寄存器4种类型的堆栈工作方式,即:

  • 满递增堆栈(FA):堆栈指针指向最后压入的数据,且由低地址向高地址生成。
  • 满递减堆栈(FD):堆栈指针指向最后压入的数据,且由高地址向低地址生成。
  • 空递增堆栈(EA):堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。
  • 空递减堆栈(ED):堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。

{!}为可选后缀,若选用该后缀,则当数据传送完毕之后,将最后的地址写入基址寄存器,否则基址寄存器的内容不改变。

基址寄存器不允许为R15,寄存器列表可以为R0~R15的任意组合。

{∧}为可选后缀,当指令为LDM且寄存器列表中包含R15,选用该后缀时表示:除了正常的数据传送之外,还将SPSR复制到CPSR。同时,该后缀还表示传入或传出的是用户模式下的寄存器,而不是当前模式下的寄存器。

指令示例:

STMFD R13!,{R0,R1,R2,R14} ;高地址对应存标号高的寄存器,R14存入R13-4中 指定的地址,然后R2存入R13-8的地址中等

STMFD R13!,{R0,R4-R12,LR} ;将寄存器R0,R4到R12和LR(R14)存入堆栈

LDMFD R13!,{R0,R4-R12,PC} ;将堆栈内容恢复到寄存器R0,R4-R12和PC

http://www.jmfq.cn/news/5123899.html

相关文章:

  • 北京公司网站建设/百度 营销中心
  • 建站案例/武汉电脑培训学校有哪些
  • 自动生成网站地图怎么做/中山seo排名
  • 做铝锭的网站/搜索引擎有哪些平台
  • 哪个网站是专门做装修的/seo企业建站系统
  • 网页设计个人总结/唐山seo排名优化
  • 口碑好的网站建设公司哪家好/搜索引擎有哪些网站
  • 宿迁网站建设价格低/盐城seo网站优化软件
  • 建设图片展示网站/武汉网络关键词排名
  • 税务局网站怎么做财务报表/浙江百度推广
  • 淘宝客做自己的网站/南宁整合推广公司
  • 嘉兴 做企业网站/优化大师手机版
  • 科技建站网站源码/百度提交入口的网址
  • 网站做百度排名/合肥建站公司seo
  • 烟台 网站建设多少钱/百度广告收费
  • 网页版qq安全中心登录入口/seo优化百度技术排名教程
  • wordpress 娱乐插件/seo提升排名
  • 做音箱木工网站/网络推广是做什么工作
  • 电商网站推荐/seo系统培训班
  • 医生在网站上做自我宣传/百度推广官网电话
  • 北海市网站建设/上海关键词seo
  • 做装修有什么好网站可以做/谷歌搜索引擎入口2023
  • 三维家设计官网/深圳网站优化公司
  • 做网站分类链接/全国免费发布信息平台
  • 网站建设怎么做/安徽网络推广和优化
  • 苏州住房与城乡建设部网站/东莞网络推广招聘
  • php网站开发实战教程/优化软件刷排名seo
  • logopond设计网站/保定seo推广外包
  • 西安有哪些网站建设公司/网络营销的应用
  • 网站建设包括什么/网站代发外链