Chinaunix
标题:
请教AT&T的高手,关于bootsect.s将自己转移到0x9000的跳转问题
[打印本页]
作者:
hzpldx@163.com
时间:
2008-06-26 09:05
标题:
请教AT&T的高手,关于bootsect.s将自己转移到0x9000的跳转问题
大家好,书上说linux在启动的时候要将自己复制到0x9000,然后跳转到实现复制的代码后继续运行.
我看书上的代码是用类同Inte的格式写的.我想用AT&T的方式实现,我写了如下代码可是一直不对,请高手指点:
.code16
.section .text
.set SETUPLEN, 4
.set BOOTSEG , 0x07c0
.set INITSEG , 0x9000
.set SETUPSEG, 0x9020
.set SYSSEG, 0x1000
.set SYSSIZE, 0x3000
.set ROOT_DEV, 0x306
movw $BOOTSEG,%ax
movw %ax,%si
movw $INITSEG,%ax
movw %ax,%di
movw $256,%cx
rep movsw
jmpl $INITSEG,go /*@1*/
go:
.....在这里我实现了一个调用BIOS实现重启.如果没有上面@1那句的jmpl语句的话是可以重启的,但是加上这句就不对了
...我想可能我的代码复制代码没有写对,也有可能是那句jmpl语句没有写对,请高手指点,我很急。。。。。
作者:
tielian
时间:
2008-06-26 10:15
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2