<自己动手写操作系统>2011041901
【分析】
当前分析支路:
根目录区没有读完
对应走向的部分代码如下:
dec word [wRootDirSizeForLoop] ; ┛ 这句话在<自己动手写操作系统>2011040101分析过了
mov ax, BaseOfLoader
mov es, ax ; es <- BaseOfLoader
mov bx, OffsetOfLoader ; bx <- OffsetOfLoader 于是, es:bx = BaseOfLoader:OffsetOfLoader
mov ax, [wSectorNo] ; ax <- Root Directory 中的某 Sector 号
mov cl, 1
call ReadSector
观察以下变量:
初始化值:[Addr]在汇编中表示地址内的内容
[wRootDirSizeForLoop]=14;//Root Directory 占用的扇区数, 在循环中会递减至零.
[wSectorNo]=0
[bOdd]=0
备注:
才发现在debug状态[wRootDirSizeForLoop]一直=0,难道没有软驱原因?居然前面的学习没有发现这个问题,杯具~
好,先去虚拟机模拟测试下~
一直以为
;变量
;----------------------------------------------------------------------------
wRootDirSizeForLoop dw RootDirSectors ; Root Directory 占用的扇区数, 在循环中会递减至零.
wSectorNo dw 0 ; 要读取的扇区号
bOdd db 0 ; 奇数还是偶数
会给wRootDirSizeForLoop赋值,为了测试记录情况,特写:wSectorNo dw 10; 要读取的扇区号
跟踪了多次,wRootDirSizeForLoop、wSectorNo都不是14、10,都是0,0
暂时未找到合适的解释~后续要注意此问题
<自己动手写操作系统>2011040101中
[wRootDirSizeForLoop]=?,执行
[wSectorNo]=19
[bOdd]=0
在上面的部分代码中,mov指令涉及的代码不需要解释了。最后一句为cl赋值为1的应该是为Call ReadSector有关。
关于函数ReadSector下次学习
当前分析支路:
根目录区没有读完
对应走向的部分代码如下:
dec word [wRootDirSizeForLoop] ; ┛ 这句话在<自己动手写操作系统>2011040101分析过了
mov ax, BaseOfLoader
mov es, ax ; es <- BaseOfLoader
mov bx, OffsetOfLoader ; bx <- OffsetOfLoader 于是, es:bx = BaseOfLoader:OffsetOfLoader
mov ax, [wSectorNo] ; ax <- Root Directory 中的某 Sector 号
mov cl, 1
call ReadSector
观察以下变量:
初始化值:[Addr]在汇编中表示地址内的内容
[wRootDirSizeForLoop]=14;//Root Directory 占用的扇区数, 在循环中会递减至零.
[wSectorNo]=0
[bOdd]=0
备注:
才发现在debug状态[wRootDirSizeForLoop]一直=0,难道没有软驱原因?居然前面的学习没有发现这个问题,杯具~
好,先去虚拟机模拟测试下~
一直以为
;变量
;----------------------------------------------------------------------------
wRootDirSizeForLoop dw RootDirSectors ; Root Directory 占用的扇区数, 在循环中会递减至零.
wSectorNo dw 0 ; 要读取的扇区号
bOdd db 0 ; 奇数还是偶数
会给wRootDirSizeForLoop赋值,为了测试记录情况,特写:wSectorNo dw 10; 要读取的扇区号
跟踪了多次,wRootDirSizeForLoop、wSectorNo都不是14、10,都是0,0
暂时未找到合适的解释~后续要注意此问题
<自己动手写操作系统>2011040101中
[wRootDirSizeForLoop]=?,执行
[wSectorNo]=19
[bOdd]=0
在上面的部分代码中,mov指令涉及的代码不需要解释了。最后一句为cl赋值为1的应该是为Call ReadSector有关。
关于函数ReadSector下次学习
无论生活、还是技术,一切都不断的学习和更新~~~努力~