内容目录
MISS早啊 今天天气不错!
OS系统学习: (真的,我承认了,学习是最简单的事情,人间真相)
1、写函数来打印字符串
2、写函数来直接读取软盘上的数据
这个函数调了好久,记录一下,终于搞明白一个问题,为什么需要第二次push bx才行,没有这个操作就读不到,调试分析才是YYDS.
; ax --> logic sector number
; cx --> number of sector
; es:bx --> target address
ReadSector:
push bx
push cx
push dx
push ax
call ResetFloppy
push bx
push cx
;============== 逻辑扇区转换为磁盘上的具体位置(磁头号、柱面号、扇区号) ==============
mov bl, [BPB_SecPerTrk]
div bl
mov cl, ah
add cl, 1
mov ch, al
shr ch, 1
mov dh, al
and dh, 1
mov dl, [BS_DrvNum]
;============== 指定扇区长度 ==============
pop ax
pop bx
;============== 规定值,指定读取软盘的操作 ==============
mov ah, 0x02
read:
int 0x13
jc read
pop ax
pop dx
pop cx
pop bx
ret
1、解决了我的一个疑问,要FreeDOS查看data.img文件的原因,这两个之间的关系。
2、写了一个MemCmp来对比内存中的字符串,进一步通过FindEntry函数来查找内存中是否存在目标文件。
查到目标文件之后,那就后续好办了。