找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1627|回复: 5
收起左侧

51单片机位寻址区20h-2fh寻址方式请教

[复制链接]
ID:73992 发表于 2022-11-15 13:37 | 显示全部楼层 |阅读模式
因为仿真计算结果不正确,我估计下可能是位寻址区赋值方式的问题。MOV 20.0,C 编译不能通过,MOV 20H,C可以通过,但是计算结果不正确,可是验算是正确的。
请大家指导一下,下面是单片机汇编语言程序
无标题.jpg DSC00122 (2).JPG

回复

使用道具 举报

ID:883242 发表于 2022-11-15 17:14 | 显示全部楼层
ADD A,20H
这是对地址20H操作
MOV C,20H
这里的20H是24H.0的别名。

都不是一个内存地址,你都加了个寂。
回复

使用道具 举报

ID:624769 发表于 2022-11-15 19:07 | 显示全部楼层
MOV  20.0, C  是错的。
正确写法是:
MOV  20H.0, C

但,
MOV  20H.0, C
不等于:
MOV  20H, C

MOV  20H.0, C
等于: MOV  00H C

同样,MOV  20H,C
等于:MOV  24H.0,C
回复

使用道具 举报

ID:72088 发表于 2022-11-16 12:23 | 显示全部楼层
你搞乱了位与字节的指令,
MOV C,20H;是位操作,就像是对应一个IO口,
MOV A,20H是字节操作,就像是对应于一组IO口(8个IO口)
回复

使用道具 举报

ID:883242 发表于 2022-11-16 13:21 | 显示全部楼层
新乡家电维修 发表于 2022-11-16 12:23
你搞乱了位与字节的指令,
MOV C,20H;是位操作,就像是对应一个IO口,
MOV A,20H是字节操作,就像是对应 ...

从他写的汇编来看,他没搞乱位与字节指令,只是搞乱了位地址和字节地址。
回复

使用道具 举报

ID:123289 发表于 2022-11-16 13:33 | 显示全部楼层
从20H-2FH,一共是16个字节,有128位。标准51系统给这128个位进行了编号,并特别给出了指令:
20H.0编号为00H, 20H.1编号为01H,......
21H.0编号为08H, 21H.1编号为09H,......
......
2FH.0编号为78H, 2FH.7编号为7FH,......
编号80-8FH留给特殊寄存器用了。如:P0.4编号为84H
MOV 20H, C 这里的20H是编号,按顺序指的是:24H.0位。
C是PSW的CY位,它也有编号:D7H。PSW的地址是D0H,在D0H.7是C。

这些手册上都有,要认真读手册,读通、读透,一遍、两遍、三遍,你对单片机就精通了。
否则,算不得精通,也就谈不上高手。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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