找回密码
 立即注册
查看: 175|回复: 8

keilC debug时候貌似变量的位置不大对

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-20 13:31:59 | 显示全部楼层 |阅读模式
keilc251.
project使用的stc89c52RC

main.c内容

#include "STC89C5xRC.h"
void main(void){
    char a='a',b='H';
    unsigned char c=250;
   
    signed char d=120;
}
截图202501201329301906.jpg 截图202501201329542972.jpg

注意到,memory看到的十六进制数字和debug窗口显示的机器码确实对应上了。
但是跟汇编的语义不一样啊。
mov 0x08,#0x61 是吧61赋予08位置,明显61不在08H处。
46也不在09H处。
78倒是凑巧在0B处了。

求问为啥不一致呢?
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-20 13:36:11 | 显示全部楼层
似乎是address框内应该填写:d:0x08
然后单步执行就可以看到正确的三个变量的值了
求问d:0x08和输入&a分别显示哪里(哪个区域)的内容?
截图202501201335354213.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2025-1-20 13:46:30 | 显示全部楼层
C:表示代码空间
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-20 15:49:14 | 显示全部楼层

谢谢。貌似&a表示查看内存空间,也就是ram的内容。
而d:0x08表示查看的是rom的内容?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2025-1-20 16:00:13 | 显示全部楼层
yzhk*** 发表于 2025-1-20 15:49
谢谢。貌似&a表示查看内存空间,也就是ram的内容。
而d:0x08表示查看的是rom的内容? ...

d:0x08就是data空间
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-20 16:53:40 | 显示全部楼层
Ayb_*** 发表于 2025-1-20 16:00
d:0x08就是data空间

好吧。还是不大懂。。。。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2025-1-20 16:55:32 | 显示全部楼层
yzhk*** 发表于 2025-1-20 16:53
好吧。还是不大懂。。。。

d代表data,c代表code,x代表xram,后面是开始地址
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:143
  • 最近打卡:2025-04-29 09:29:30

31

主题

148

回帖

982

积分

高级会员

积分
982
发表于 2025-1-20 17:03:16 | 显示全部楼层
Ayb_*** 发表于 2025-1-20 16:55
d代表data,c代表code,x代表xram,后面是开始地址

求问 d:0x08和输入&a为啥显示的不一样?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2025-1-20 17:22:43 | 显示全部楼层
yzhk*** 发表于 2025-1-20 17:03
求问 d:0x08和输入&a为啥显示的不一样?

我不知道输入&a表示什么
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:37 , Processed in 0.583539 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表