• Rocket


    https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg

     

    简单介绍Variable ROM Generation。

     

     

    1. jalAbstract

     

    jalAbstract是一条指令,跳转到抽象命令的指令:

     

    Instruction.JAL是jump and link指令:

     

    GeneratedUJ用于生成一个UJ格式的指令结构:

    JAL属于J-format。

     

    GeneratedUJ的定义如下:

     

    jalAbstract.setImm(ABSTRACT(cfg) - WHERETO)把跳转地址设置为ABSTRACT:

    当pc=WHERETO时,跳转目标地址即是ABSTRACT。

     

    jalAbstract的值存放在地址WHERETO处,亦即jalAbstract是存放在WHERETO地址处的指令:

     

    2. goReg

     

    goReg是一个寄存器:

     

    其复位值为假:

     

    如果goAbstract为真,其值为真:

     

    如果hartGoingWrEn为真,其值为假:

     

    hartGoingWrEn是写GOING寄存器的标志:

    GOING寄存器位于核心访问的地址空间中,所以写GOING寄存器的是核心执行的指令。

     

    总结一下:

    a. 要执行抽象命令时(goAbstract=true)为真;

    b. 开始执行抽象命令时(begins executing Debug Mode Instructions)为假;

     

    3. goAbstract

     

    goAbstract是一个标志位:

     

    表示将要执行command寄存器中的命令:

     

    4. goCustom

     

    goCustom也是一个标志位:

     

    表示是否访问Custom地址区间的寄存器:

     

    5. flags

     

    flags由1024个flagsBundle组成:

     

    其中go的值由goReg确定:

     

    resume的值由resume请求确定:

     

    flags用于在FLAGS地址处生成一组只读寄存器:

                 

     

     

  • 相关阅读:
    fiddler强大功能用法(二)
    fidder强大功能用法(一)
    fidder使用
    postman
    bug的一生:如何体现测试专业度?
    Fiddler无法抓到https的解决方法
    Fiddler工具安装下载使用
    z-index
    position:absolute
    ajax跨域,json,jsonp
  • 原文地址:https://www.cnblogs.com/wjcdx/p/12545510.html
Copyright © 2020-2023  润新知