找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2670|回复: 8
打印 上一主题 下一主题
收起左侧

关于单片机存储器单元成功赋值但没写进去数据

[复制链接]
跳转到指定楼层
楼主
ID:383062 发表于 2018-8-18 09:12 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请帮我看看 关于存储器的一个问题 急 谢谢 谢谢
执行完毕后 r0 与0x85 两个单元成功赋值,但是A这个单元怎么没有写进去数据呢 为什么

image.jpg (93.07 KB, 下载次数: 31)

image.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:383062 发表于 2018-8-18 09:14 来自手机 | 只看该作者
mov R0,#0x85
mov 0x85,#0x22
mov A,@R0

image.jpg (91.31 KB, 下载次数: 27)

image.jpg
回复

使用道具 举报

板凳
ID:94031 发表于 2018-8-18 10:45 | 只看该作者
c语言 发表于 2018-8-18 09:14
mov R0,#0x85
mov 0x85,#0x22
mov A,@R0

把 mov 0x85,#0x22 改为 mov @R0,#0x22; 就可以了。
回复

使用道具 举报

地板
ID:7485 发表于 2018-8-18 12:34 | 只看该作者
你是用的是什么单片机?有没有0x85(0x7f以上的)RAM?AT89c51就没有。只有128字节最高到0x7f。
回复

使用道具 举报

5#
ID:383062 发表于 2018-8-18 16:52 来自手机 | 只看该作者
ahshmj 发表于 2018-8-18 12:34
你是用的是什么单片机?有没有0x85(0x7f以上的)RAM?AT89c51就没有。只有128字节最高到0x7f。

我用的是因特尔公司的80c52芯片 有256b内ram 如果按照狭义的说就是只有低128b 实际上高128b的sfr也是可以直接寻址的 0x85这个属于高ram区 高ram区的除了sfr剩下的比如0x85单元应该怎么寻址 书上漏了这种情况

image.jpg (83.85 KB, 下载次数: 26)

image.jpg

image.jpg (74.07 KB, 下载次数: 28)

image.jpg
回复

使用道具 举报

6#
ID:383062 发表于 2018-8-18 17:10 来自手机 | 只看该作者
xuyaqi 发表于 2018-8-18 10:45
把 mov 0x85,#0x22 改为 mov @R0,#0x22; 就可以了。

大哥 谢谢你啊 那为什么这样就可以了
我想问高128b内除了21个离散分布的sfr 剩下的比如0x85这个单元属于内ram 还是外ram
第一种 如果根据芯片介绍来看 明确写了256字节的片上ram 那0x85要不是内ram 那就好像凑不齐256个了
第二种 根据实验结果看 根据你的实验后 A单元确实赋值进去了 但是data区里的0x85这个单元22h没写进去 而我发现在idata区也就是间接寻址片内ram里的0x85单元值变成了22h
哦 我明白了 这两种情况是一致的 我先前把第二种里的间接寻址片内ram看成了 间接寻址片外ram
0x85单元属于片内ram 对这类单元格赋值用间接寻址方式
写进来以帮助其他看到可能不会的人

image.jpg (100.23 KB, 下载次数: 28)

image.jpg

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:383062 发表于 2018-8-18 17:16 来自手机 | 只看该作者
xuyaqi 发表于 2018-8-18 10:45
把 mov 0x85,#0x22 改为 mov @R0,#0x22; 就可以了。

那么这书上画线的地方 寄存器间接寻址是不是少写了一点 就是片内ram高128字节中出去sfr的字节地址也应该是寄存器间接寻址?还想问的是0x85这个地址的单元格也属于寄存器吧?谢谢哈

image.jpg (69.97 KB, 下载次数: 21)

image.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

8#
ID:7485 发表于 2018-8-18 20:16 | 只看该作者
51单片机的高128位(80H~0FFH)是和特殊功能寄存器地址相重合的,可以直接寻址,不可以使用R1、R0间接寻址的。
如 mov R0,#0x80
    mov 0x80,#0x22
    mov A,@R0
是不可以的。
  而:mov R0,#0x7F
         mov 0x7F,#0x22
         mov A,@R0     
是可以的。
回复

使用道具 举报

9#
ID:111634 发表于 2018-8-18 21:14 | 只看该作者
对于80c52单片机(属增强型),访问(包括写入和读出)高128B(80H~FFH)均应采用寄存器间接寻址方式。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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