我是汇编新手,有一个简单的 C 程序将字符串打印到标准输出。在汇编中,这转化为main调用_IO_Puts. _IO_puts下面给出了以下实现:https: //code.woboq.org/userspace/glibc/libio/ioputs.c.html。
int
_IO_puts (const char *str)
{
int result = EOF;
size_t len = strlen (str);
_IO_acquire_lock (stdout);
if ((_IO_vtable_offset (stdout) != 0
|| _IO_fwide (stdout, -1) == -1)
&& _IO_sputn (stdout, str, len) == len
&& _IO_putc_unlocked ('\n', stdout) != EOF)
result = MIN (INT_MAX, len + 1);
_IO_release_lock (stdout);
return result;
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么动态指令的数量会发生变化,有时会随着模拟 MIPS 处理器上字符串长度的增加而减少?