2015年4月8日

使用B或BL跳转时,下一条指令的地址是这样计算的

摘要: B跳转指令:它是个相对跳转指令,其机器码格式如下:[31:28]位是条件码;[27:24]位为“1010”(0xeaffffff)时,表示B跳转指令,为“1011”时,表示BL跳转指令;[23:0]表示偏移地址。使用B或BL跳转时,下一条指令的地址是这样计算的:将指令中24位带符号的补码立即数扩展为... 阅读全文

posted @ 2015-04-08 23:25 n哖苡逅 阅读(808) 评论(0) 推荐(0) 编辑

加载时域和运行时域

摘要: 我们经常用到“存储地址和连接地址不同”(术语上称为加载时域和运行时域)的情况: 大多机器上电时是从地址0开始运行的,但是从地址0运行程序在性能方面总有很多限制,所以一般在开始的时候,使用与位置无关的指令将程序本身复制到它的连接地址处,然后使用向pc寄存器赋值的方法跳到连接地址开始的内存上去执行剩下的... 阅读全文

posted @ 2015-04-08 23:19 n哖苡逅 阅读(333) 评论(0) 推荐(0) 编辑

bss段和data段的区别

摘要: 一般情况下,一个程序本质上都是由bss段、data段、text段三个组成的——本概念是当前的计算机程序设计中是很重要的一个基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。在采用段式内存管理的架构中(比如intel的80x86系统),bs... 阅读全文

posted @ 2015-04-08 23:15 n哖苡逅 阅读(5630) 评论(0) 推荐(1) 编辑

GNU风格 ARM汇编语法指南

摘要: 汇编源程序一般用于系统最基本的初始化:初始化堆栈指针、设置页表、操作ARM的协处理器等。这些初始化工作完成后就可以跳转到C代码main函数中执行。1、GNU汇编语言语句格式任何Linux汇编行都是如下结构:[:][}@commentlinstruction为指令ldirective为伪操作lpseu... 阅读全文

posted @ 2015-04-08 23:12 n哖苡逅 阅读(803) 评论(0) 推荐(0) 编辑

导航