搜索
bottom↓
回复: 5

keil中disassembly window问题

[复制链接]

出0入0汤圆

发表于 2011-5-29 00:20:36 | 显示全部楼层 |阅读模式
disassembly window这个之前没用过,最近在调红外不得已而试试,汇编学的不好凑合着看看,有个问题想问下大牛们

sg:

    19:         while(de--)   
C:0x0003    EF       MOV      A,R7
C:0x0004    1F       DEC      R7
C:0x0005    AC06     MOV      R4,0x06
C:0x0007    7001     JNZ      C:000A
C:0x0009    1E       DEC      R6
C:0x000A    4C       ORL      A,R4
C:0x000B    6013     JZ       C:0020

这几行中,
0x0003   
0x0004   
0x0005   
0x0007   
0x0009   
0x000A   
0x000B   

这列的差就可以知道每条指令占用的机器周期吧?这样就不需要记住每个关键词的机器周期了哦?
然后这列后面的值就是变量计算后得到的值吧?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-5-29 00:33:48 | 显示全部楼层
不是机器周期,是代码长度

出0入0汤圆

 楼主| 发表于 2011-5-29 00:35:40 | 显示全部楼层
回复【1楼】renpeng009 大鹏集成
不是机器周期,是代码长度
-----------------------------------------------------------------------

代码长度?有什么用途吗?

出0入0汤圆

发表于 2011-5-29 08:58:50 | 显示全部楼层
0x0003   
0x0004     
0x0005     
0x0007     
0x0009     
0x000A     
0x000B     
这些指的是代码在flash中的位置,C指的是程序段,例如JNZ这个指令的字节数为2,那么下一跳指令就要从0x0007+2=0x0009开始,DEC R6占用一个字节,所以下一条从0x0009+1=0x000A开始。故它们之间的差值表示指令长度。使用汇编编写程序时可以使用相对地址,但在这里均为绝对地址,如 JNZ      C:000A  就是说条件满足时,程序会跳转到0x000A处执行。
这列后面的值是代码在flash中的实际表示。

出0入0汤圆

发表于 2014-1-11 12:14:12 | 显示全部楼层
请问一下这每行的第二个数字代表什么意思?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 04:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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