【问题标题】:Carry flag in MSP430 is confusedMSP430 中的进位标志混淆
【发布时间】:2021-12-21 02:54:14
【问题描述】:
  "mov #10,r5\n"
  "sub #1,r5\n" //test value

我在硬件中运行,当 'sub' exec 时,设置了进位标志。为什么?

enter image description here

【问题讨论】:

    标签: assembly msp430 carryflag


    【解决方案1】:

    当涉及到减法时,进位标志与加法相比是相反的。如果值环绕,则将进位设置为 0。如果没有(如您的示例中所示),则将其设置为 1。

    不幸的是,在阅读处理器手册时,这并不是 100% 清楚的。但是,此行为与其他处理器一致,例如6502.

    【讨论】:

    • 其他一些 ISA,如 8086,使用它们的进位标志作为借用输出。其他人,如 ARM(显然是 MSP430 和 6502)将其用作最高位的!borrow。所以你必须检查手册,例如查看无符号下跳转指令,看看它是在寻找 C==0 还是 C==1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多