找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3344|回复: 9
收起左侧

关于51单片机的汇编语言的程序调试(为何累加器A中得内容变为了06H)望大神指导一二

[复制链接]
回帖奖励 4 黑币 回复本帖可获得 2 黑币奖励! 每人限 2 次(中奖概率 50%)
ID:229016 发表于 2018-11-14 21:17 | 显示全部楼层 |阅读模式
在proteus中仿真调试, (]APGS{PB9O@@6BP@%]HF4R.png
执行到这一步时为何累加器A中得内容变为了06H,为何不是04H;
还有pc的值为何从0040跳到了0042,以及后面的0044,0047是怎么跳转的,汇编刚接触,不太明白,希望得到指点



回复

使用道具 举报

ID:111634 发表于 2018-11-15 08:21 | 显示全部楼层
pc的值为何从0040跳到了0042,是因为前一条指令是2字节。同理,0044,0047跳转也是前面的指令依次是是2字节、3字节。累加器A中得内容变为了06H,为何不是04H,DPTR中的数据是02,加上04,变成了06.
回复

使用道具 举报

ID:401564 发表于 2018-11-15 08:24 | 显示全部楼层
问题不在这里,问题在于TAB这个表,你没有让我看到你TAB的表
回复

使用道具 举报

ID:387733 发表于 2018-11-15 09:17 | 显示全部楼层
R7初始值是4, 每次运行到005A,会减一,若不等于0,则跳转到0047(LOOP)循环入口,否则跳出循环,执行下一条指令。0044给数据指针DPTR赋值为#TAB,应该是一个表格。0047把当前R7(4~1)赋给A,0048 是查表,把表格中  DPTR+A 项(也就是 TAB+R7),的值赋给A
回复

使用道具 举报

ID:229016 发表于 2018-11-15 14:22 | 显示全部楼层
Y_G_G 发表于 2018-11-15 08:24
问题不在这里,问题在于TAB这个表,你没有让我看到你TAB的表

TAB:DB 00H,46H,4FH,5BH,06H;空,“4”,“3”,“2”,“1”的字段码
回复

使用道具 举报

ID:229016 发表于 2018-11-15 14:35 | 显示全部楼层
zl2168 发表于 2018-11-15 08:21
pc的值为何从0040跳到了0042,是因为前一条指令是2字节。同理,0044,0047跳转也是前面的指令依次是是2字节 ...

指令是多少字节这是什么意思?指令字节宽度?这些宽度是如何推算的呢?
我的tab表是这样的:
TAB:DB 00H,66H,4FH,5BH,06H ;“空”,“4”,“3”,“2”,“1”的字段码
DPTR中放的数据不因该是地址码吗?是地址0075,也就是tab表的地址,tab表的
第一个的数据应该是00,00+04=04,这个02是从哪里来的呢?
我小白,麻烦了,望耐心指点
回复

使用道具 举报

ID:229016 发表于 2018-11-15 14:38 | 显示全部楼层
sxhwdz 发表于 2018-11-15 09:17
R7初始值是4, 每次运行到005A,会减一,若不等于0,则跳转到0047(LOOP)循环入口,否则跳出循环,执行下一 ...

TAB:DB 00H,66H,4FH,5BH,06H ;“空”,“4”,“3”,“2”,“1”的字段码
这是具体的tab表,忘记贴了,但04+00不等于06啊,这里的02哪里来的呢?
回复

使用道具 举报

ID:111634 发表于 2018-11-15 17:22 | 显示全部楼层
探路 发表于 2018-11-15 14:35
指令是多少字节这是什么意思?指令字节宽度?这些宽度是如何推算的呢?
我的tab表是这样的:
TAB:DB 00 ...

1. 指令字节宽度是固有的,共有1、2、3字节3种,你可查书中指令字节表。
2. tab表首址是0075, 0075+4=0079, 0079存储单元内的数据正好是06H.
你欲深刻理解和深入学习,介绍你2本书,张志良编著的:《单片机原理与控制技术——双解汇编和C51》第3版ISBN 978-7-111-42393-5机械工业出版社;《单片机学习指导及习题解答——双解汇编和C51》第2版ISBN 978-7-111-42431-4机械工业出版社。后书是前书的配套教材,但也可单独使用。这2本书是双解汇编和c,对汇编有较为详细的解说,有许多思考题,并有习题解答。便于阅读理解,便于自学。书中电路和程序设计有详细说明,程序语句条条有注解。你可先去图书馆或新华书店翻阅。
回复

使用道具 举报

ID:401564 发表于 2018-11-15 19:13 | 显示全部楼层
探路 发表于 2018-11-15 14:22
TAB:DB 00H,46H,4FH,5BH,06H;空,“4”,“3”,“2”,“1”的字段码

你把别的回答先忘了
汇编,你不要去管PC值,这玩意不好搞的,左边的那数字不要去管了.还有,汇编代码最好是搞好一点代码风格,不然自己都看不明白 QQ截图20181115191020.png
回复

使用道具 举报

ID:229016 发表于 2018-11-16 12:26 | 显示全部楼层
Y_G_G 发表于 2018-11-15 19:13
你把别的回答先忘了
汇编,你不要去管PC值,这玩意不好搞的,左边的那数字不要去管了.还有,汇编代码最好是 ...

懂了,谢谢您,收获很多
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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