zoukankan      html  css  js  c++  java
  • <自己动手写操作系统>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下次学习


    无论生活、还是技术,一切都不断的学习和更新~~~努力~
  • 相关阅读:
    jacascript 立即执行函数(IIFE)与闭包
    javascript 作用域链与执行环境
    高并发、海量数据处理尽量少使用using也能提升效率
    清理0字节文件和文件夹
    一个朋友面试时遇到的算法题(怎么组合后得到最大整数)
    避免回溯方法
    Linq 查询结果 可能遵循 2 º,2¹,2 ²,......增长计算
    复杂 XML 的 序列化 反序列化
    小米4年600亿背后的10条创业经验
    经典String str = new String("abc")内存分配问题
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/2020763.html
Copyright © 2011-2022 走看看