永发信息网

汇编语言中的@和$是什么意思啊?

答案:3  悬赏:40  手机版
解决时间 2021-01-29 06:05
  • 提问者网友:未信
  • 2021-01-28 19:23
这么一段话:
dll注意下 要进行重定位

call $+5 ;机器码是 E8 00000000 00000000是相对地址
@@: pop ebx
sub ebx, @b

里边的@@是什么意思?后边的@b呢?为什么上边的call 不需要重定位,而变量需要重定位?
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-01-28 19:48
@@是标号,pop ebx这条指令的标号
比如需要跳转到这条指令时,可以用LJMP @@或SJMP @@
@b是指间接地址
全部回答
  • 1楼网友:玩世
  • 2021-01-28 21:59
“$”是汇编语言中的一个预定义符号,等价于当前正汇编到的段的当前偏移值。 指令“jmp $+3”中的“$”表示当前这条指令在代码段中的偏移量。指令“jmp $+3”表示要向前跳转到距离这条指令3个字节的地方。若是“jmp $-3”,则表示要向后跳转到距离这条指令3个字节的地方。 “$”可用于表达式,并且可以用于表达式的任意位置。 更具体的内容,请参阅汇编语言的“预定义符号”章节。
  • 2楼网友:罪歌
  • 2021-01-28 20:35
楼主给出的汇编语言,是80x86系列CPU的32位的汇编语言。 楼上,回答者 yyh001123 解释的汇编:LJMP、SJMP,是单片机8031的汇编语言。 俩人说的不是一档子事。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯