在keil中看内存地址


从上图可以看出当执行mov r3 #0x0010时,因为指令需要先加载进内存中,内存中发生如下变化

1.当板子上电之后,第一步加载进内存的是中断向量表,但不是说0x000000000这块内存空间不可以使用了

2.指令在内存中也是以十六进制的方式存在的

对于mov r0 #0x0010这样一条指令来说,如果是小于255的立即数,那么这个立即数只占一个字节,这里也可以验证了

内存中是以字节为单位存放数据的,从第一行的00到第二行的17,一共是17(十六进制)个字节

换算为十进制是23个字节,其中一条指令占的是4个字节,也就是 10 30 A0 E3其中10是立即数,后面的就是指令的机器码

如果换成其他的立即数比如0xf000

一条指令的后12位(bit11~0),是指令中立即数占用的位数,,其中这个12位又分为2部分,前7~0位是数值部分,后11~8位是前7~0位要进行移位操作的移位数,也就是说如果一个立即数小于0xFF(255)那么直接用前7~0位表示即可,此时不用移位,11~8位的rotate_Imm等于0,如果前八位immed_8的数值大小了255,那么就看这个数是否能有immed_8中的某个数移位rotate_imm位形成的

所以此时内存中第一个字节发生变化,后面的第二个字节8-11位也会相应发生变化


所以,第一位变成0f,第二位变成3A









  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Keil中查看内存数据主要有两种方式,分别是“Memory”窗口和“Watch”窗口。 1. “Memory”窗口 在Keil中,点击菜单栏中的“View”,选择“Serial Windows”下的“Memory”,即可打开“Memory”窗口。在窗口中的“Address”栏中输入要查看的内存地址,然后点击“View”按钮或者按下“F5”键即可在窗口中查看到该地址的内存数据。在窗口中还可以对内存数据进行编辑、保存等操作。 2. “Watch”窗口 除了打开“Memory”窗口查看指定内存地址的数据,还可以在“Watch”窗口中进行观察。在Keil中,点击菜单栏中的“View”,选择“Watch”即可打开“Watch”窗口。在窗口中的“Watch 1”栏中输入要观察的变量名称,如“*p”(指针变量p所指向的内存数据),然后点击“Add”按钮或者按下“F2”键即可在窗口中查看到该变量名所表示的内存数据。可以在窗口中添加多个要观察的变量名称。在窗口中还可以对变量数据进行编辑、保存等操作。 综上,在Keil中查看内存数据比较简便,可以通过两种窗口实现,都比较直观易用。 ### 回答2: 在Keil中查看内存数据的方法有多种。其中一种方法是通过使用Memory window(内存窗口)。 步骤如下: 1. 打开Keil软件,并打开需要查看内存数据的工程。 2. 点击菜单栏的"Debug",然后选择"Start/Stop Debug Session"。 3. 等待程序开始执行并暂停,然后点击菜单栏上的"View",并选择"Memory Window"打开内存窗口。 4. 在内存窗口中可以选择需要查看的内存地址,也可以通过选择变量名或寄存器名来查看相关的内存数据。 5. 在内存窗口中可以以十六进制、十进制或二进制的形式显示内存数据,也可以对内存数据进行修改。 除了Memory Window,Keil还提供了一些其它方法来查看内存数据,例如Watch Window(监视窗口)、Expression Window(表达式窗口)等。这些窗口都可以在调试的过程中动态地显示内存中的数据,并且也可以对变量和内存数据进行修改。对于需要深入调试和分析程序的开发人员来说,了解如何使用这些工具是非常重要的。 ### 回答3: 在Keil中查看内存数据可以通过如下步骤: 第一步,打开内存窗口。在Keil的左侧窗口中可以看到Project栏,点击右侧的Target1,然后选择Peripherals栏,再点击Memory1。如下图所示: ![内存窗口](https://img-blog.csdn.net/20170307233958446?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWljaGFlbC5ibG9nZ3NfaW1hZ2VfZGNvZGU=//font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50) 第二步,选择需要查看的内存区域。Keil提供多种内存区域选择,如Code(程序代码区)、Xdata(xRAM数据区)、Data(数据区)等。我们可以在"Address"栏中输入需要查看的内存地址,然后在"Size"栏中输入需要查看的内存大小。如下图所示: ![选择内存区域](https://img-blog.csdn.net/20170307234510105?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWljaGFlbC5ibG9nZ3NfaW1hZ2VfZGNvZGU=//font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50) 第三步,查看内存数据。在输入完内存地址和大小后,点击"GO"按钮即可查看内存数据。在内存窗口中,我们可以查看到所选内存区域中的全部内容,以及对应的地址。如下图所示: ![查看内存数据](https://img-blog.csdn.net/20170307234635773?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWljaGFlbC5ibG9nZ3NfaW1hZ2VfZGNvZGU=//font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50) 以上就是在Keil中查看内存数据的方法,通过这种方法我们可以查看程序代码、数据、变量等内存信息,从而更好地进行调试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值