call _strlen后结果会不会存放到eax中
时间: 2024-04-01 14:31:20 浏览: 41
在这段代码中,`_strlen` 函数的返回值(即字符串长度)确实存储在了 `eax` 寄存器中,但是在该段代码中并没有将 `eax` 中的值直接使用,而是将其存储到了 `[esp+7Ch]` 的内存位置。这是因为在函数调用过程中,函数的返回值通常是存储在寄存器中的,但是为了在调用函数后能够使用这个返回值,必须将其存储到内存中。因此,虽然 `eax` 中存储了 `_strlen` 函数的返回值,但是它并不是这段代码的最终结果。
相关问题
call _strlen后,结果存放在哪里
在这段代码中,`_strlen` 函数返回的字符串长度被存储在栈中,具体的存储位置为 `[esp+7Ch]`。其中 `esp` 是当前栈指针的值,`7Ch` 是一个偏移量,表示从栈顶向下偏移了 `7Ch` 个字节的位置。因此,通过将返回值存储在 `[esp+7Ch]` 的位置,可以将字符串长度传递给调用者。
阅读全文