在linux / MIPS上,哪些寄存器保存在系统调用 (不是函数调用,通过syscall指令实际往返于kernelspace)?
从arch/mips/include/asm/stackframe.h头文件中的RESTORE_SOMEmacros看来,它看起来像r2-r7,r25,r28和r31被恢复,当然被调用者保存的寄存器被调用约定即使在内核空间中(任何使用它们的内核空间函数都会在对它们进行破坏之前自行保存)。 它是否正确?
当然,至less有一对(r2和r7)的系统调用的结果会导致它们的值被破坏。
将数组传递给x86 asm中的函数
使用寄存器而不保存它们? (部件)
汇编:从标准input读取整数,增加它并打印到标准输出
我如何调用一个函数,它需要几个int整数?
windows如何执行汇编程序?
x64 memset核心,是否传递缓冲区地址被截断?
内联assembly可以closures保护模式吗?
如何从汇编(从windows设备驱动程序)更改cpu频率
将值插入数组并显示,nasm
如何避免不符合缓冲区的stdininput发送到linux 64位Intel(x86-64)程序集的shell中
在linux / MIPS系统调用中,查看这个链接的描述(我只知道内核源码本身以外的唯一一个)。
我想MIPS ABI公约应该在系统调用之前准确地定义哪些寄存器包含系统调用号和参数,以及在系统调用之后哪些寄存器包含结果(包括错误代码)。 通常系统调用不使用堆栈,只有注册。
“按照调用约定,系统调用保留了o32定义为存活函数调用的那些寄存器的值。” ( 见MIPS运行 ,379页)
总结以上是内存溢出为你收集整理的Linux-MIPS系统调用保存的寄存器?全部内容,希望文章能够帮你解决Linux-MIPS系统调用保存的寄存器?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)