求解汇编指令DJNZ的新用法

[复制链接]
3777|18
 楼主| hm_315 发表于 2014-11-27 17:49 | 显示全部楼层 |阅读模式
代码如下所示
  1. Q0186:
  2. DJNZ  51H,Q0198                    
  3. MOV   51H,#0FAH                  
  4. DJNZ  52H,Q0198                 
  5. MOV   51H,#01H                  
  6. MOV   52H,#01H                  

  7. Q0198:
  8. ....

  9. LJMP Q0186

当51H中变量的值减为0时,则执行第二句,51H中变量又被赋值为0xFAH。那是不是意味则后面的代码DJNZ 52H,Q0198 只会被执行一次呢?
求大神,跪求~!



 楼主| hm_315 发表于 2014-11-27 17:49 | 显示全部楼层

@airwill    版主求解。。。
yklstudent 发表于 2014-11-27 19:08 | 显示全部楼层
仿真跑下不就知道了
songchenping 发表于 2014-11-27 19:19 | 显示全部楼层
对汇编是无能为力啊。
songchenping 发表于 2014-11-27 19:20 | 显示全部楼层
对汇编是无能为力啊。
airwill 发表于 2014-11-27 23:14 | 显示全部楼层
Q0186:
....

LJMP Q0186

这是个大循环, 其中
MOV   51H,#0FAH                  
说明下面的代码
DJNZ  52H,Q0198      
每 250次循环中被执行一次.
         
 楼主| hm_315 发表于 2014-11-27 23:53 | 显示全部楼层
airwill 发表于 2014-11-27 23:14
Q0186:
....

感谢版主,我好像懂了
NE5532 发表于 2014-11-28 17:17 | 显示全部楼层
2字节的大循环递减,51地址存的是低字节,52地址存的是高字节。
jerkoh 发表于 2014-11-28 17:19 | 显示全部楼层
这是个反汇编出来的吧
wujh 发表于 2014-12-2 22:40 | 显示全部楼层
看反汇编的东西还是比较累的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部