Linux内核0.11 bootsect自搬移问题

在linux0.11内核 中 bootsect.s里自搬移的代码,只移动256字(512字节),可是整个bootsect.s虽然不大,但也有10KB多,这个怎么理解,好像没有人这么问,为什么?

 

entry start                     !告诉链接程序,程序从标号start开始执行
start:
    mov ax,#BOOTSEG     !设置ds为0x07c0(段地址)
    mov ds,ax
    mov ax,#INITSEG     !设置es为0x9000(段地址)
    mov es,ax
    mov cx,#256         !移动计数值256个字
    sub si,si           !源地址      ds:si = 0x07c0:0x0000
    sub di,di           !目的地址 es:di = 0x9000:0x0000
    rep                     !重复执行并cx的值,直到cx = 0
    movw                    !串传送指令,从[si]移动cx个字到[di]处。从start开始到这里,这段程序将bootsect从0x07c0复制到0x9000处
    jmpi    go,INITSEG      !段间跳转,INITSEG 指跳转到的段地址, 标号go是段内偏移地址。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值