有人可以解释一下操作码0x08在LR35902处理器上的作用.助记符是LD (a16),SP.
我很困惑,因为堆栈指针是一个16位的值,但是(a16)某个地址只能存储8位(我想!).我可以猜到前8位被放入(a16),而下一位被放在那些旁边,但我想要确认.
考虑以下代码:
#include <optional>
#include <string_view>
int main() {
std::optional<std::string_view> opt { "abc" };
std::cout << opt.value();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它编译并在运行时将“abc”输出到控制台。为什么要编译?main 中的第一行代码应该是:
std::optional<std::string_view> { std::string_view { "abc" } };
Run Code Online (Sandbox Code Playgroud)
编译器如何知道使用文字调用 string_view 构造函数?这似乎不仅仅是我以前见过的类型推导。这里似乎编译器正在向我的源代码添加代码,即对构造函数的调用。