找回密码
 立即注册
楼主: wuzhengmin

跟着何宾老师学习STC32位8051单片机原理及应用-STC32G12K128

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 10:42:38 | 显示全部楼层
下面举一个例子,看看无符号正数是什么意思?

怎么今天上传的图片很模糊?看不清Debug中的内容?


截图202511191055184122.jpg
截图202511191056022962.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:01:33 | 显示全部楼层
加法算出的结果是04,为啥?本来应该是0001 0000 0100溢出啦,只剩下0000 0100

看看执行完的结果:



截图202511191100242348.jpg
截图202511191101558413.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:13:32 | 显示全部楼层
结果是需要12位数来表示,1个字节再加上4…………
80251里实际是没有累加器A的,都是用寄存器R11来代替的

我们看看何老师的演示:


截图202511191113264635.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:15:48 | 显示全部楼层
在下图的Debug中何宾老师是可以单步的:

但同样的环境,看我的(第二幅图):

我其实也是按单步执行F11,但是执行的是全速?

就像今天我遇到的第一个问题:上次的图像非常模糊,我马上换了一台计算机

问题就解决了,不过我这个Debug的单步,30天前开始发现,到现在还没解决.........+

现在也是按单步Step(F11)就不能单步:一下就执行了4行:,有时候就全部执行完......



截图202511191115307374.jpg
截图202511191115421384.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:22:45 | 显示全部楼层
看看e:的意思
这里这个Memory 1 我们写e:
意思是类型于8051的基本数据区,e:是在MCS-251指令集架构下,原来的基本数据区DATA,
对应到扩展的DATA区域,其实就是原来8051的内部数据区。

截图202511191122423459.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:25:50 | 显示全部楼层
MOV R7,b(0x0009) 是把09存储单元的内容放到R7寄存器里去。09里保存的是5A这个数据,接着做0扩展:MOVZ WR4,R7, WR4是16位,高8位是用0填充。R7本身是8位的。下面2行同理。
特别注意这里:
截图202511191125474640.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:27:08 | 显示全部楼层
这里用的16位相加指令ADD:ADD WR6,WR4,结果保存在WR6寄存器里

截图202511191127052435.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:28:06 | 显示全部楼层
WR6确实保存了270(16进制就是0x0104),但是我声明的C的无符号正整数,只有8位,只和R7对应,就只把R7的内容付给0x000A ,c就只能是04 ……只能溢出了,那就会查进位cy,可是cy又=0,你不懂汇编就蒙啦。就是说你不学汇编,无符号数怎么表示,其实你不知道…….
如果在8位机,就在产生一个进位标志CY:
截图202511191128045126.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:29:41 | 显示全部楼层
但是现在进位标志cy=0, 你是不是有点蒙?

?????
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-03-30 19:54:03
已绑定手机

22

主题

2426

回帖

3422

积分

论坛元老

积分
3422
发表于 2025-11-19 11:30:40 | 显示全部楼层
原因在这里:

我们现在是32位机,WR6 是正确的,不会有进位,CY是0
截图202511191130371845.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-1 02:43 , Processed in 0.110554 second(s), 75 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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