问各位前辈一个汇编的问题!

[复制链接]
3461|13
 楼主| cym016 发表于 2011-5-23 20:31 | 显示全部楼层 |阅读模式
JNB P1.0,$-2 我想知道$-2是啥意思啊?跳转到哪里去啦!?
shangxiang 发表于 2011-5-23 20:42 | 显示全部楼层
是回跳到前二步
lfb112 发表于 2011-5-23 20:44 | 显示全部楼层
应该是跳到该指令前的第二条指令
 楼主| cym016 发表于 2011-5-23 20:50 | 显示全部楼层
我发现这样会和前面的指令矛盾啊! 3# lfb112
 楼主| cym016 发表于 2011-5-23 20:51 | 显示全部楼层
我觉得应该是跳回前两步把,因为前面是延时! 2# shangxiang
 楼主| cym016 发表于 2011-5-23 20:54 | 显示全部楼层
郁闷啊!我又认真的看了下又好象是跳回前面一条指令!因为是减2,好像要加上自己本身,也就是前面一条!
McuPlayer 发表于 2011-5-23 21:09 | 显示全部楼层
jmp $-2
这条指令,是跳转到当前地址减2的地址上去

比如:
L1:  nop
L2:  nop
jnb P1.0 $-2
此处可以改为:jnb P1.0  L1

如果L2标号处是2字节指令,则相当于jnb P1.0 L2
sysdriver 发表于 2011-5-23 21:39 | 显示全部楼层
哈,这样的写法不标准,最好不要采用。

这个是指令占用多少地址字节的问题。就像LS说的,万一L2处放个4字节指令呢,呵呵
 楼主| cym016 发表于 2011-5-23 21:52 | 显示全部楼层
明白了!谢谢各位前辈啊!
NE5532 发表于 2011-5-23 21:59 | 显示全部楼层
对汇编有变长指令的最好不要这样玩,会把自己弄晕,PIC16的汇编还差不多。
mxb882208 发表于 2011-5-24 15:58 | 显示全部楼层
我随便看看
mxb882208 发表于 2011-5-24 16:00 | 显示全部楼层
我随便看看
pang7 发表于 2011-5-24 17:52 | 显示全部楼层
如果是单字节指令这样可以的 一般不推荐这样用 看起来也费劲
McuPlayer 发表于 2011-5-24 22:31 | 显示全部楼层
在PIC的单片机有个JMP $+1的用法非常有意思
比如你写了一个Delay函数
Delay:
     NOP
     NOP
     NOP
     RET

你试着把所有NOP改成“JMP $+1”,看Delay的时间变化了多少?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

1

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