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下次学习


    无论生活、还是技术,一切都不断的学习和更新~~~努力~
  • 相关阅读:
    Tomcat下使用war包发布项目
    shell编程报错:“syntax error near unexpected token `”
    undo表空间不足,ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'
    HTML快速入门
    HTTP协议快速入门
    Java Web应用的开发模式
    使用Jekyll搭建免费的Github Pages个人博客
    前端模拟API数据的两种方式
    Node.js学习笔记
    socket.io笔记
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/2020763.html
Copyright © 2011-2022 走看看