在下一个代码中:
section .data
sa db ’abxdefghxl’,0
la EQU $ - sa
sb db ’abcdexghil’,0
section .text
正如我在程序中看到的那样,当我执行mov ecx时,la - 然后我在ECX中获得了11。
我不明白为什么 - abxdefghxl
的数量不是10.我们还算0?
答案 0 :(得分:2)
假设sa
从0x400
开始。您已定义10(abxdefghxl
)加1(最后0
),因此la
将从0x40B
开始。 $表示当前指令/指令地址。因此$-sa
= 0xB
或11
答案 1 :(得分:1)
$代表当前位置。由于当前位置是在完全声明“sa”之后,表达式$ -sa是11.请记住,在汇编中没有像“字符串”数据类型那样的东西,“sa”只是字节的集合。 / p>