keilC debug时候貌似变量的位置不大对
keilc251.project使用的stc89c52RC
main.c内容
#include "STC89C5xRC.h"
void main(void){
char a='a',b='H';
unsigned char c=250;
signed char d=120;
}
注意到,memory看到的十六进制数字和debug窗口显示的机器码确实对应上了。
但是跟汇编的语义不一样啊。
mov 0x08,#0x61 是吧61赋予08位置,明显61不在08H处。
46也不在09H处。
78倒是凑巧在0B处了。
求问为啥不一致呢?
似乎是address框内应该填写:d:0x08
然后单步执行就可以看到正确的三个变量的值了
求问d:0x08和输入&a分别显示哪里(哪个区域)的内容?
C:表示代码空间 Ayb_ice 发表于 2025-1-20 13:46
C:表示代码空间
谢谢。貌似&a表示查看内存空间,也就是ram的内容。
而d:0x08表示查看的是rom的内容? yzhkpli 发表于 2025-1-20 15:49
谢谢。貌似&a表示查看内存空间,也就是ram的内容。
而d:0x08表示查看的是rom的内容? ...
d:0x08就是data空间 Ayb_ice 发表于 2025-1-20 16:00
d:0x08就是data空间
好吧。还是不大懂。。。。 yzhkpli 发表于 2025-1-20 16:53
好吧。还是不大懂。。。。
d代表data,c代表code,x代表xram,后面是开始地址 Ayb_ice 发表于 2025-1-20 16:55
d代表data,c代表code,x代表xram,后面是开始地址
求问 d:0x08和输入&a为啥显示的不一样? yzhkpli 发表于 2025-1-20 17:03
求问 d:0x08和输入&a为啥显示的不一样?
我不知道输入&a表示什么
页:
[1]