汇编
xiaofeng_yan
这个作者很懒,什么都没留下…
展开
-
align
今决定认真分析一下u-boot的代码,但一开始就被“.balignl 16 0xdeadbeef”这条语句难住了,还好,google了一下,找到了《分析了一下 align 的用法》这篇文章,作者写得很好,看完后,我根据自己的实验结果,做了适当的更改,以让自己看起来更明白,把它记录如下:.align 就是用来对齐的,究竟怎么对齐,有啥情况?下面分析一下(一)$vim align1.s转载 2010-01-20 17:27:00 · 904 阅读 · 0 评论 -
bochs安装一系列问题 [转]
http://www.cnblogs.com/viviwind/archive/2012/12/21/2827581.html操作系统:ubuntu 12.04 http://gbk.chinaunix.net/uid-23817499-id-3418083.htmlapt-get install bochs错误一:00000000000p[ ] >>PAN转载 2014-01-14 07:17:10 · 1934 阅读 · 0 评论 -
内联汇编
http://www.ibm.com/developerworks/cn/linux/sdk/assemble/inline/ 一: 首先我们应该知道linux下采用的是AT&T的汇编语法格式,这和我们平时所学的Intel汇编是不同的。二者的主要区别在于:1.指令操作数的赋值方向是不同的 Intel:第一个是目的操作数,第二个是源操作数 AT&T:第一个是源操作数,第二个转载 2010-04-01 16:51:00 · 602 阅读 · 0 评论 -
__asm__ __volatile__ ("" : : : "memory")
1.内存屏障(memory barrier) #define set_mb(var, value) do { var = value; mb(); } while (0) #define mb() __asm__ __volatile__ ("" : : : "memory") 1)set_mb(),mb(),barrier()函数追踪到底,就是__asm__ __volatile__("转载 2010-03-24 16:35:00 · 1208 阅读 · 0 评论 -
lowlevel_init.S 分析
在我迷迷糊学看了lowlevel_init.S中的代码之后,有一个感觉就是,要想读懂其中的代码首先得看一下你所用的芯片手册,因为里面有比较详细的存储器控制(MemoryController)描述。我用的是s3c2440手册里写得十分清楚,总共有8个块(Banks)(Bank0~Bank7),每个块对应着不同的控制与地址线,其实这些Bank很大一部分是对应着的控制寄存器的地址,这个要看实际的芯片与转载 2010-01-26 14:59:00 · 1338 阅读 · 1 评论 -
arm gnu 汇编语法
尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构:[:] [} @ comment[:] [} @ 注释Linu转载 2010-01-20 17:31:00 · 2988 阅读 · 1 评论 -
u-boot源码分析及移植
u-boot源码分析及移植 收藏 http://www.eetop.cn/blog/html/92/23692-13841.html本文从以下几个方面粗浅地分析u-boot 并移植 到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR转载 2010-01-23 15:35:00 · 841 阅读 · 0 评论 -
协处理器
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5转载 2010-01-20 17:33:00 · 720 阅读 · 0 评论 -
head.s
在进入保护模式后,head.s程序重新建立和设置IDT,GDT表的主要原因是为了让程序在结构上比较清晰,也是为了与后面的linux 0.11内核源代码中这两个表的设置方式保持一致,当然。就本程序来说我们完全可以直接使用boot.s中设置的IDT和GDT表位置,填入适当的描述符即可。##LATCH = 11930#定时器初始计数值SCRN_SEL = 0x18#屏幕显示内存段转载 2014-02-14 07:17:14 · 860 阅读 · 0 评论