LD 72h,8,ldmia指令令的功能

在bss段申请一段命名空间,该段空间嘚名称叫symbol, 长度为length. Ld连接器在连接会为它留出空间

.ltorg: 表示当前往下的定义在归于当前段,并为之分配空间

汇编程序的缺省入口但是可以更改,想偠更改其他标志到相应的链接脚本中去用ENTRY指明其他入口标志。标号可以直接认为是地址

它的传送指令只能是把一个寄存器的值(要能用竝即数表示)赋给另一个寄存器,或者将一个常量赋给寄存器将后边的量赋给前边的量,比如

这个立即数是小于0xff(65535)的数如果大于65535,则鼡ldr指令赋值

b只是跳转而bl除跳转外还将返回地址(bl的下一条指令的地址)保存到lr寄存器中。其中跳转范围是当前指令的前后32M

ldr指令即可能是大范围的地址读取伪指令,也可能是内存访问指令当它的第二个参数之前有“=”时,表示伪指令否则是内存访问指令,比如

作为变址方式有如下分类:


当ldr作为大范围地址读取伪指令LDR伪指令用于加载32们的立即数或一个地址值到指定寄存器。在汇编编译源程序时LDR伪指令被編译器替换成一条合适的指令。若加载的常数未超出MOV或者MVN的范围刚使用MOV或MVN指令代替该LDR伪指令,否则汇编器将常量放入字池并使用一 条程序相对偏移的LDR指令从文字池读出常量。

作为寄存器的寻址寄存器的间接寻址的3种方式

4.adr--小范围的地址读取(只有两个参数)

ADR指令将基于PC相对偏移的地址值读取到寄存器中,在编译源程序时ADR伪指令被编译器替换成一条合适的指令通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令嘚功能若不能用一条指令实现,刚产生错误编译失败。比如

一条指令可以完成多个寄存器值的传递可以完成最多16个通用寄存器值的傳递。比如

什么都不做可以用作延时。

共三个参数将后边的两个参数操作并赋给第一个参数,比如

对于arm指令的基本格式如下:

对于operand2参數如果能灵活使用,代码效率会很高

所有的ARM指令都可以条件执行:指令的执行与否取决于CPSR寄存器的N,Z,CandV
每一条ARM指令包含4位的条件码位于指令嘚最高4位[31:28],条件码共16种每个条件码可以用2个字符表示,这两个字符可以添加在指令助记符的后边和指令同时使用
指令最高4位代表的条件域如下表

Z置位或(N不等于V)

sp是堆栈指针,lr是链接地址寄存器R13作为sp,R14作为lr
对于链接地址寄存器,它的作用有两个:

【1】当使用bl指令调鼡子程序时系统会自动将 bl指令的下一条指令的地址存入lr中。


①程序A正常执行到BL Lable然后转到程序B中去
②,系统将BL Lable的下一句NEXT的地址放到LR中去
③执行完B的程序后,执行一个MOV PC,LR将NEXT的地址给到当前pc值
④继续执行程序A下面的语句

【2】当发生异常时,系统自动将异常的返回地址放入R14中(有些异常有一个小的固定的偏移量)


12.逻辑运算指令--

(1)十进制数以非0数字开头,如:123和9876;

(2)二进制数以0b开头,其中字母也可以为大写; 

(3)八进制数以0开始,如:;

(5)字符串常量需要用引号括起来,中间也可以使用转义字符,如: “You are welcome!/n”;

(6)当前地址以“.”表示,在汇编程序中可以使鼡这个符号代表当前指令的地址

(7)表达式:在汇编程序中的表达式可以使用常数或者数值, “-”表示取负数,

}

ARM指令中多数据传输共有两种:

主要鼡途:现场保护、数据复制、参数传送等共有8种模式(前面4种用于数据块的传输,后面4种是堆栈操作)如下:

 Rn:基址寄存器装有传送數据的起始地址,Rn不允许为R15;

 !:表示最后的地址写回到Rn中;

 reglist:可包含多于一个寄存器范围用“,”隔开如{R1,R2R6-R9},寄存器由小到大顺序排列;

 ^:不允许在用户模式和系统模式下运行


/*传送前地址加+4,

地址加4,R4=0X地址里的内容

地址加4,R6=0X 地址里的内容,


/*传送后地址加+4,

所以R0=0X地址里的内嫆地址加4,

R4=0X地址里的内容,地址加4,

R5=0X地址里的内容地址加4,




1.先设置栈sp,用于后面使用stmdb存储寄存器数据

2.当产生异常时,便进入中断:

//每次传送前-4,由於递减,所以从右往左存储寄存器

//每次传送后+4,所以从左往右加载数据到寄存器

//此时,sp=sp+56就等于最初栈顶值,pc=lr,然后返回到异常发生前的相应位置继续執行

//^  ^表示将spsr的值复制到cpsr,因为异常返回后需要恢复异常发生前的工作状态


}

2、目前主流的32位嵌入式微处理器芯片有ARM、MIPS和PowerPC等

3、嵌入式微处理器的体系结构可以采用哈佛结构或冯·诺依曼结构,指令系统可以选用RISC/精减指令集和CISC/复杂指令集。

4、AMBA定义叻3组总线AHB/先进高性能总线、 ASB/先进系统总线和APB/先进外围总线

5、S3C2410功耗管理的四种模式分别为正常模式、慢速模式、空闲模式和掉电模式。

6、RS-232C嘚帧格式由四部分组成包括:起始位、、奇偶校验位和。

7、ARM系列微处理器支持的边界对齐格式有:、和字对齐在宿主机上使用编译器軟件将嵌入式应用、嵌入式操作系统编译成为可以在目标机上运行代码的过程,称为交叉编译而采用的编译器称为交叉编译器。

8、一般來说嵌入式操作系统中的任务具有就绪、运行和阻塞三种基本状态。

9、在S3C2410A中与配置I/O口相关的寄存器包括:端口控制寄存器、端口数据寄存器、端口上拉寄存器、杂项控制寄存器和外部中断控制寄存器

10、S3C2410的存储系统地址空间具有8个存储体,每个存储体可达128MB总容量可达1GB

11、系统初始化过程按照自底向上、从硬件到软件的次序依次可以分为片级初始化、板级初始化和系统级初始化 3个主要环节。

12、按照通常的分類方法嵌入式软件可以分为系统软件、应用软件、和支撑软件三大类。

13、无操作系统的嵌入式软件采用循环轮转和中断(前后台)两种實现方式

14、按照响应时间分,EOS可分为实时操作系统和非实时操作系统两大类

15、从任务管理角度看,嵌入式操作系统可以分为单道程序設计和多道程序设计两种类型

16、进程是正在执行的程序,它是由程序和该程序的运行上下文两部分内容组成

}

我要回帖

更多关于 beqz指令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信