关于$符号的汇编问题

youshiyouyu 2009-08-26 04:46:36
a.....
jmp $+3
c.....
d.....
e.....
f.....
g.....

请问jmp $+3 跳到哪里?
...全文
137 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Great_Bug 2009-08-27
  • 打赏
  • 举报
回复
当前指令的地址+3.....我前面说的不对
Great_Bug 2009-08-27
  • 打赏
  • 举报
回复
8: jmp $+3
C:0x0068 8001 SJMP C:006B
9: nop
C:0x006A 00 NOP
10: nop
C:0x006B 00 NOP
西山锈码 2009-08-27
  • 打赏
  • 举报
回复
用仿真器设断点调试一下不就明白了吗,看执行这一句后,跳到下面第几行就是了。
youshiyouyu 2009-08-27
  • 打赏
  • 举报
回复
jmp 指令长度是多少? cjne 是多少?
ckc 2009-08-27
  • 打赏
  • 举报
回复
具体跳到哪要看编译出来的结果
这种写法是比较容易出问题的,哪一天不小心在后面加了句或者修改了一句
或者cpu指令集调整甚至编译器换了一个都可能会得到不同的结果
Arnold9009 2009-08-26
  • 打赏
  • 举报
回复
当前pc的值+3
youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
ls 能举个例子吗?
guetcw 2009-08-26
  • 打赏
  • 举报
回复
要看什么指令集,51的话由于指令长度不确定,就不能确定跳到哪,需要看下面的代码的指令长度
youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
a.....
cjne x,#0ah , $+3
c.....
d.....
e.....
f.....
g.....
请问这个要是跳的话 跳到那里?
youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
哦? 是说jmp不会跳那么远? 就是下一行。。。
lbing7 2009-08-26
  • 打赏
  • 举报
回复
想起一个:

JMP在51上是三个字节
$只是JMP首字节的地址

若地址://假设JMP为指令内容,前为地址
0000:J
0001:M
0002:P
0003://此正好为:JMP首地址+3,意为下一条指令的首地址

怎么到这感觉JMP $+3是一句费话了呢?环境是在51上

youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
ls 谢谢!
lbing7 2009-08-26
  • 打赏
  • 举报
回复
jmp $+3 ;$+0
c..... ;$+1
d..... ;$+2
e..... ;$+3
lbing7 2009-08-26
  • 打赏
  • 举报
回复
$是jmp $+3 这一指令的存放地址
youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
ls $是多少 我觉得像f。。。
请教了
lbing7 2009-08-26
  • 打赏
  • 举报
回复
e.....
youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
假如一行就一条指令的话
youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
加入一行就一条指令的话
youshiyouyu 2009-08-26
  • 打赏
  • 举报
回复
ls 那应该是第几行?
Great_Bug 2009-08-26
  • 打赏
  • 举报
回复
当前地址(下一条指令地址)+3...

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧