导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→问一个关于汇编指令的问题[sailer]

 *第16463篇: 问一个关于汇编指令的问题

  
楼 主:sailer 2003年9月23日10:21
 问一个关于汇编指令的问题
书上说JMP指令是单字节双周期指令 字节数在SJMP AJMP LJMP中是最少的,机器周期数大家都一样,寻址范围比AJMP要大,如此说来那三条语句存在的价值是什么?有什么特殊的功能吗?疑惑ing......


  
2楼:红心J 2003年9月23日12:19
 JMP @A+DPTR确实是间接跳转,单
JMP @A+DPTR确实是间接跳转,单字节,双周期,但使用前必须要为条件赋值。
比较一下JMP @A+DPTR与LJMP,
如果程序要跳转到一个新地址NEW_ADR,则实现过程对比如下:
(1)MOV DPTR,#NEW_ADR    ;字节:3       周期:2
       CLR A                             ;字节:1       周期:1
       JMP @A+DPTR                 ;字节:1       周期:2
 ;合计:                                  字节:5       周期:5

(2)LJMP NEW_ADR               ;字节:3       周期:2

  
3楼:sailer 2003年9月23日12:28
 JMP好像也可以直接用啊
确实没有未条件赋值 就像用ajmp一样的用 JMP NEW_ADR 没发现程序错误啊 

继续困惑ing...

  
4楼:红心J 2003年9月23日12:39
 您可能使用的是伟福编译器。
标准汇编语

您可能使用的是伟福编译器。
标准汇编语句没有JMP NEW_ADR这一句。
伟福编译器编译时根据跳转地址情况将JMP NEW_ADR编译为以下三种指令:
(1)SJMP NEW_ADR
(2)AJMP NEW_ADR
(3)LJMP NEW_ADR
您可考察一下:将JMP NEW_ADR编译好的机器码反汇编,看看是那条指令。
  
5楼:sailer 2003年9月23日13:33
 果然!
多谢大虾指教!感激不尽!

>>>>>>对该主题发表你的看法

本主题贴数5,分页: [第1页]


[上一篇主题]:急招

[下一篇主题]:帮帮忙