[英]Assembler - EQU calculate what?
在下面的代码中:
section .data
sa db ’abxdefghxl’,0
la EQU $ - sa
sb db ’abcdexghil’,0
section .text
正如我在程序中看到的那样,当我运行mov ecx时,la-然后我在ECX中得到了11。 我不明白为什么abxdefghxl
的数量不是10。我们也算0?
假设sa
从0x400
开始。 您已定义10( abxdefghxl
()加1 0
在端),因此la
wwould在开始0x40B
。 $表示当前指令/指令地址。 因此$-sa
= 0xB
或11
$代表当前位置。 并且由于当前位置在“ sa”的完整声明之后,因此表达式$ -sa为11。请记住,在汇编中没有像“ string”数据类型那样的内容,因此“ sa”只是字节的集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.