找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于51单片机汇编程序中双字节查双字节的查表程序问题 请求前辈们解惑

[复制链接]
ID:710632 发表于 2020-3-18 10:28 | 显示全部楼层 |阅读模式
新人发帖,有过C51单片机学习经历,现因学习原因开始接触汇编
如图是汇编程序中双字节查双字节的查表问题,图内方框中的程序使我困扰很久不得其解
我的理解中方框中的程序貌似是把电压值x乘以2后与原DPTR相加,不知道是否有错误
请问:1、第二个RLC A指令不用给CY清零是因为电压为10位二进制数,高八位乘以2后不会产生进位的原因么
          2、
最终得出DPH时为什么要加CY(为什么要用ADDC A,Rn指令,用ADD A,Rn会怎么样)

          3、ADD A,DPL右边的注释是不是有问题
          4、
电压x与温度y是怎么对应起来的,为什么电压值x乘以2后与温度表首地址相加就得到对应的温度

请前辈们解惑,如果可以的话可以帮我解读一下框内程序么,感激不尽!

tempsnip.png

回复

使用道具 举报

ID:401564 发表于 2020-3-18 13:56 | 显示全部楼层
1:因为后面R2也在移位,你试着一个数移位试一下就知道了
2:那是加法运算,加法运算难道不是要算上进位的吗?
3:没有问题,只是你还没有学完这破玩意,DPTR是一个16位的地址,也是8051中唯一一个可以直接进行运算的16位地址
4:2那是地址要*2,因为后面TAB2:跟着的是一个”DW“的伪指令,DW大概的意思是:用两个地址来保存这数据

5:上面说TAB2可以在存储空间的任何位置,这是不对的,像这种TAB2  DW……的伪指令,一定要在在前加ORG伪来确定位置,以保证数据保存的长度不能跨页,跨页了,INC   DPTR指令有可能会出错

如果你看不明白,可以不用学上面的东西,用处不大,以后最好是用C,不是项目指定的话,最好远离汇编
回复

使用道具 举报

ID:710632 发表于 2020-3-18 19:01 | 显示全部楼层
Y_G_G 发表于 2020-3-18 13:56
1:因为后面R2也在移位,你试着一个数移位试一下就知道了
2:那是加法运算,加法运算难道不是要算上进位的 ...

非常感谢解答,考研复试要考这个汇编,比起C语言可读性太差了,自己看教材觉得很不好理解
回复

使用道具 举报

ID:401564 发表于 2020-3-18 20:13 | 显示全部楼层
yigui579 发表于 2020-3-18 19:01
非常感谢解答,考研复试要考这个汇编,比起C语言可读性太差了,自己看教材觉得很不好理解

汇编这玩意不好学
我现在用的就是汇编,准备打算学C了
如果你没有写好一个程序烧录去验证的话,光背就有点太难了
你最好是抄下或者是电脑上打出来,然后,自己跟着再后面加注释,慢慢的也就理解了
对于我来说,我有条件,基本上模棱两可的东西就写好代码,然后烧录验证
回复

使用道具 举报

ID:710632 发表于 2020-3-19 09:25 | 显示全部楼层
Y_G_G 发表于 2020-3-18 20:13
汇编这玩意不好学
我现在用的就是汇编,准备打算学C了
如果你没有写好一个程序烧录去验证的话,光背就有 ...

是的,学习C的时候基本都是边研究程序边搭建实物的,理解的更深刻一些
现在在家学习汇编暂时只能尽量读懂遇到的程序
回复

使用道具 举报

ID:707687 发表于 2020-6-21 21:31 | 显示全部楼层
Y_G_G 发表于 2020-3-18 13:56
1:因为后面R2也在移位,你试着一个数移位试一下就知道了
2:那是加法运算,加法运算难道不是要算上进位的 ...

感谢,解答
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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