栈为空时转到$
goto $ when stack is empty
这是我期末考试的一部分。向我提供了以下代码,并询问了它的行为。在代码中我们可以清楚地看到没有分支(即 call
或中断),据我所知,这意味着程序堆栈是空的。然而在代码的末尾有一个 goto $
指示编译器(?)到 (空) 堆栈顶部的任何内容。
任何人都可以告诉我在这种情况下通常会发生什么行为,以及它在下面的代码中的具体表现如何。考虑到我们正在开发 PIC16F877.
谢谢。
我不知道你是如何建立从 $
到堆栈的关系的。
$
用于引用当前地址。你可以这样写:
any_label: jmp any_label
或跳过标签并使用 $
jmp $
因为$
是当前地址,所以两个汇编程序语句创建相同的代码。用于在无限循环中停止程序运行的执行。
CPU不停在同一个地址循环,耗电。一些 CPU 可能有省电模式,在这种情况下可能会更好。
这是我期末考试的一部分。向我提供了以下代码,并询问了它的行为。在代码中我们可以清楚地看到没有分支(即 call
或中断),据我所知,这意味着程序堆栈是空的。然而在代码的末尾有一个 goto $
指示编译器(?)到 (空) 堆栈顶部的任何内容。
任何人都可以告诉我在这种情况下通常会发生什么行为,以及它在下面的代码中的具体表现如何。考虑到我们正在开发 PIC16F877.
谢谢。
我不知道你是如何建立从 $
到堆栈的关系的。
$
用于引用当前地址。你可以这样写:
any_label: jmp any_label
或跳过标签并使用 $
jmp $
因为$
是当前地址,所以两个汇编程序语句创建相同的代码。用于在无限循环中停止程序运行的执行。
CPU不停在同一个地址循环,耗电。一些 CPU 可能有省电模式,在这种情况下可能会更好。