当前位置: 代码迷 >> 汇编语言 >> 读 《Orange‘s一个操作系统的实现》,上面的代码怎么将loader加载到内存
  详细解决方案

读 《Orange‘s一个操作系统的实现》,上面的代码怎么将loader加载到内存

热度:2109   发布时间:2013-02-26 00:00:00.0
读 《Orange‘s一个操作系统的实现》,下面的代码如何将loader加载到内存?
LABEL_GOON_LOADING_FILE:
push ax ; `.
push bx ;  |
mov ah, 0Eh ;  | 每读一个扇区就在 "Booting  " 后面
mov al, '.' ;  | 打一个点, 形成这样的效果:
mov bl, 0Fh ;  | Booting ......
int 10h ;  |
pop bx ;  |
pop ax ; /

mov cl, 1
call ReadSector
pop ax ; 取出此 Sector 在 FAT 中的序号
call GetFATEntry
cmp ax, 0FFFh
jz LABEL_FILE_LOADED
push ax ; 保存 Sector 在 FAT 中的序号
mov dx, RootDirSectors
add ax, dx
add ax, DeltaSectorNo
add bx, [BPB_BytsPerSec]
jmp LABEL_GOON_LOADING_FILE
LABEL_FILE_LOADED:

mov dh, 1 ; "Ready."
call DispStr ; 显示字符串



看不出来将文件拷贝到内存的语句,不懂呀,求大虾指教。
------最佳解决方案--------------------------------------------------------
你是没看明白那两个函数的意思,CALL READSECTOR加载扇区,call getfatentry找下一个扇区
------其他解决方案--------------------------------------------------------
哦,是这样的,谢谢
  相关解决方案