读 《Orange‘s一个操作系统的实现》,下面的代码如何将loader加载到内存?
LABEL_GOON_LOADING_FILE:
pushax; `.
pushbx; |
movah, 0Eh; | 每读一个扇区就在 "Booting " 后面
moval, '.'; | 打一个点, 形成这样的效果:
movbl, 0Fh; | Booting ......
int10h; |
popbx; |
popax; /
movcl, 1
callReadSector
popax; 取出此 Sector 在 FAT 中的序号
callGetFATEntry
cmpax, 0FFFh
jzLABEL_FILE_LOADED
pushax; 保存 Sector 在 FAT 中的序号
movdx, RootDirSectors
addax, dx
addax, DeltaSectorNo
addbx, [BPB_BytsPerSec]
jmpLABEL_GOON_LOADING_FILE
LABEL_FILE_LOADED:
movdh, 1; "Ready."
callDispStr; 显示字符串
看不出来将文件拷贝到内存的语句,不懂呀,求大虾指教。
[解决办法]
你是没看明白那两个函数的意思,CALL READSECTOR加载扇区,call getfatentry找下一个扇区