【发布时间】:2011-12-27 14:46:14
【问题描述】:
我是 asm 的新手,并且在其中使用字符串。
1/我有一个字符串,我想返回第一个字符的地址。 (我在 C main 中调用 asm 函数)。
我试过了:
movl $str, %eax
据我说,它返回字符串。
movl $(str), %eax 返回字符串第一个字符的地址?
如果我想返回字符串中第二个字符的地址,我不明白如何在 asm 中做到这一点。
我这样在 C 程序中显示结果:
printf("string : %s, adress : %d\n", function_asm(), function_asm()).
它返回“字符串:编程,地址:134520852” 我认为“134520852”不是地址,有些我不明白。
2/我已经看到有 %edi、%esi 和字符串函数,但我找不到使用它的好(简单)教程。我刚刚明白 %edi 用于索引源,%esi 用于索引目标...你知道一些关于它的链接吗?
提前致谢! :-)
【问题讨论】:
-
是什么让你认为“
134520852不是地址”?
标签: string assembly x86 gnu-assembler