函数调用参数和寄存器
来源:互联网 发布:java 数据一致性 编辑:程序博客网 时间:2024/05/25 21:33
1) MIPS
函数参数从左到右依次传递给 $a0~$a3.
(gdb) where#0 Calculator::Multiply (this=0x411008, a=12, b=10) at testclass.cpp:29#1 0x004009b4 in main (argc=1, argv=0x7fff6e44) at testclass.cpp:37(gdb) p /x $a0$3 = 0x411008(gdb) p /x $a1$4 = 0xc(gdb) p /x $a2$5 = 0xa(gdb) p *(Calculator*)$a0$6 = {<IObject> = {_vptr.IObject = 0x400c28 <vtable for Calculator+8>}, a = 0, b = 0}
2)ARM: 函数参数也是从左到右传递给 寄存器 $r0到 $r3.
(gdb) where#0 Calculator::Multiply (this=0x11008, a=a@entry=12, b=b@entry=10) at testclass.cpp:26#1 0x00008530 in main (argc=<optimized out>, argv=<optimized out>) at testclass.cpp:37(gdb) p /x $r0 $4 = 0x11008(gdb) p /x $r1 $5 = 0xc(gdb) p /x $r2 $6 = 0xa(gdb) p *(Calculator *)$r0$7 = {<IObject> = {_vptr.IObject = 0x8760 <vtable for Calculator+8>}, a = 0, b = 0}
0 0
- 函数调用参数和寄存器
- 从寄存器看I386和x64位中函数调用中参数传递
- 从寄存器看I386和x64位中函数调用中参数传递
- 从寄存器看I386和x64位中函数调用中参数传递
- SPARC 函数调用寄存器变化
- 函数的参数和函数调用
- 函数的参数和函数调用
- 系统调用和函数参数传递
- 函数的调用和参数的传递
- .和:调用函数参数的传递
- Matlab的函数调用和参数传递
- 汇编中的函数调用与寄存器
- 函数调用过程中的寄存器状态分析
- 函数参数的传值调用和传址调用
- ATPCS和内嵌汇编:arm处理器上函数调用寄存器的使用规则
- C++代码反汇编后的函数调用过程,堆栈寄存器EBP和ESP
- X86和ARM:函数调用参数传递和返回值
- 函数调用参数判断
- iOS之UIPageController的使用——纯代码实现翻页效果
- riak简介(一)
- 对C++中指针做函数返回值的认识
- [Codeforces] Round #285 (Div. 2) A、B
- 分解质因数
- 函数调用参数和寄存器
- [Leetcode]Single Number II
- java的简单反射运用实例(读取csv文件映射为对象)
- 对计算机科学的反思
- [LeetCode]Text Justification
- 一位资深射频工程师的成功轨迹
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- 完数
- 何为splitbrain【记一次RAC节点异常宕机】