【问题标题】:Comp Architecture - LC-3比较架构 - LC-3
【发布时间】:2021-07-18 13:35:41
【问题描述】:

我想知道 PC(程序计数器)与条件代码有什么关系?我注意到,当 PC 被引入时,它紧随其后有“,条件代码”。我知道条件代码的作用,但不确定它们之间的关系。

【问题讨论】:

    标签: assembly cpu-architecture lc3 program-counter


    【解决方案1】:

    每个寄存器,包括通用寄存器、程序计数器和 3 个 1 位条件代码都是处理器内独立的状态片段。

    与各种状态相关的是指令集中的特定指令。访问处理器状态的唯一方法是执行指令,因此指令集本身就定义了我们可以针对处理器状态做什么。

    有一些指令设置条件代码(如ADD),还有一些指令测试条件代码(如BRn/z/p)。测试条件代码的是条件分支指令。

    条件分支指令可以使程序计数器向前移动以跳过代码或向后移动程序计数器以重复已执行的代码。

    这些指令对于用 C 语言(例如 if-then、if-then-else、while、for-loop)进行结构化语句的汇编/机器代码实现非常重要。

    所以,条件码和程序计数器的基本关系是通过条件分支指令一起使用,由程序控制其执行流程。

    【讨论】:

    • 谢谢!这整个机器语言的东西对我来说是新的。很有趣,但我会坚持使用高级语言:(。
    • 哦,还有一个问题,PCoffset 是做什么的?据我了解,您将该值添加到源寄存器中,这就是您的答案(LEA?)。不确定这是否正确,但是 offsetN 和 PCoffsetN 有什么区别?
    • 对不起,我不知道你指的是什么 re:offsetN。我的文字描述了 PCOffset9 和 PCOffset11,它们都是定位程序要引用的存储的方法。这可能值得在这里发布另一个问题。
    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多