摘要: 有几个概念需要重新梳理一下。 Cylinder-head-sector(CHS) 这里的Cylinder和track容易搞混,track是一个平面的东西,而Cylinder相当于多个track竖着叠起来,形成一个柱状。 CHS可以有三组数字,定位在硬盘中的某一个扇区。可以用LBA (Logical block address)来说明。 LBA 可以和CHS三元组进行相互换算。 见http://e... 阅读全文
posted @ 2009-05-21 23:10 Fan Zhang 阅读(256) 评论(0) 推荐(0)
摘要: gcc可以通过-Wl将参数传入ld命令 GCC: -Wl,option Pass option as an option to the linker. If option contains commas, it is split into multiple options at the commas. LD: -Tbss org -Tdata org -Ttext orgSame as –sect... 阅读全文
posted @ 2009-05-21 17:03 Fan Zhang 阅读(260) 评论(0) 推荐(0)
摘要:     .text     .code32 .globl _start; _start:    . = 0x200  //这是让下面的代码偏移量为0x200     movl 0x100,%eax 阅读全文
posted @ 2009-05-21 16:48 Fan Zhang 阅读(192) 评论(0) 推荐(0)
摘要: SECTIONS{ . = 0x10000; .text : { *(.text) } . = 0x8000000; .data : { *(.data) } .bss : { *(.bss) }}   The first line inside the `SECTIONS' command of the above example sets the value o... 阅读全文
posted @ 2009-05-21 16:25 Fan Zhang 阅读(186) 评论(0) 推荐(0)
摘要: Basic Linker Script Concepts Every loadable or allocatable output section has two addresses. The first is the VMA, or virtual memory address. This is the address the section will have when the output ... 阅读全文
posted @ 2009-05-21 15:45 Fan Zhang 阅读(364) 评论(0) 推荐(0)
摘要: 运行ld –verbose GNU ld version 2.17.50 20060824   Supported emulations:    i386pe using internal linker script: ================================================== /* Default linker script... 阅读全文
posted @ 2009-05-21 15:29 Fan Zhang 阅读(619) 评论(0) 推荐(0)
摘要: 为了更好的学习reactos,特意找到了一个很早的版本,用svn取下,http://svn.reactos.org/reactos/tags/ReactOS-0.0.10/reactos带的编译环境里的make版本,有点问题。例如在一级Makefile里,调用make –C XX,会导致错误。 gcc版本呢3.4.5所以采用msys环境。 编译的时候出现几个问题,解决方法如下: 1. ... 阅读全文
posted @ 2009-05-20 18:15 Fan Zhang 阅读(800) 评论(2) 推荐(0)
摘要: 在公司试图访问svn:svn://svn.reactos.org/reactos/trunk/reactos,发现失败,可能是端口被封掉了。于是采用http协议,可以使用。http://svn.reactos.org/reactos/tags/ReactOS-0.0.10/ http://svn.reactos.org/reactos/trunk/reactos/ 阅读全文
posted @ 2009-05-20 16:08 Fan Zhang 阅读(269) 评论(0) 推荐(0)
摘要: 1.一般的程序都是可重定位的,变量或者函数的地址,都是用相对地址记录的。并且变量的地址在link后,可以确定相对位置,在加载后才可以确定绝对位置。一般这样都写成函数,用修饰符proc修饰。 2.但有时候需要写非重定位程序,就需要用固定地址引用变量。例如需要写一个bin文件,然后这个bin文件需要被加载到某个地址运行。 这时,在首地址需要写成。这样在编译前,地址就已经确定了。一般用标签,如XXX: ... 阅读全文
posted @ 2009-05-18 23:49 Fan Zhang 阅读(377) 评论(0) 推荐(0)
摘要: 现在从freeldr_main模块下手,找到freeldr_main.rbuild文件。 <!DOCTYPE module SYSTEM "http://www.cnblogs.com/../tools/rbuild/project.dtd"> <module name="freeldr_startup" type="objectlibrary"> <include... 阅读全文
posted @ 2009-05-18 18:22 Fan Zhang 阅读(378) 评论(0) 推荐(0)