51单片机汇编语言Keil5基础问题!

img


想问一下我应该如何设置才能让寄存器b的值也成功显示!error 65报错。

你这个是未注册版本的keil,有2K代码限制。关键是这个版本还不能使用单片机的前2K空间,所以你调试的时候都访问不了。
注册就有了,不过MDK4貌似最多也就激活到2020年左右,换MDK5吧。

根据错误信息,似乎你的代码尝试在程序计数器(PC)为0xB的地址执行或读取一些数据,但是权限不足,不能够访问这个地址。这很可能是由于你的代码或者相关的数据段试图访问一些受到保护的地址或资源,或者访问超出了这些地址的范围。

首先,你需要确定PC指向的代码是正确的,如果PC指向的代码确实是你的代码段中的某个地址,那么你需要检查访问这个地址是否符合要求,并且代码段是否被正确地加载和初始化。

其次,你需要检查你的代码是否尝试访问一些不属于你的程序的内存区域,或者访问超出你的程序内存限制的地址。如果是这种情况,你需要检查你的代码中是否有一些指针或数组索引错误等问题。

最后,你可以考虑通过使用调试器、打印调试信息或使用其他调试技术来帮助你找到这个问题的根本原因。你可以在关键位置添加printf语句来输出变量或调试信息,以便快速找到问题。

希望这些提示能够对你有所帮助!

在51单片机的汇编语言中,寄存器B是一个8位的寄存器,用于存储临时数据。如果你想在Keil5中显示寄存器B的值,你需要在调试窗口中启用它。

以下是一些可能有用的步骤:

首先,在Keil5中打开你的汇编语言项目,并进入"Debug"选项卡。

然后,在"Debug"选项卡中,右键点击调试窗口,并选择"Watch 1"或"Watch 2"。

在"Add Watch"对话框中,输入"B"作为要监视的表达式,并选择"Byte"作为数据类型。

点击"OK"按钮,然后在调试窗口中就可以看到寄存器B的值了。

需要注意的是,如果你在代码中没有使用寄存器B,它的值可能会是随机的或者未定义的。因此,在监视寄存器B的值之前,你需要确保在你的代码中已经正确地设置和使用了寄存器B。

另外,如果你在代码中使用了寄存器B,但仍然无法在Keil5中显示它的值,可能是由于编译器或调试器的设置问题导致的。你可以尝试检查编译器和调试器的设置,确保它们正确地支持寄存器B的使用和显示。

MDK没激活哦,可以网上找激活的工具和激活办法。