- 2024-10-07一起学RISC-V汇编第9讲之RISC-V ABI之寄存器使用约定
目录1RISC-V寄存器使用约定2Caller-saved与Callee-saved2.1对比几种不同的寄存器保存方式2.2为什么要分caller-saved与callee-saved?2.3caller-saved与callee-saved寄存器的灵活使用寄存器使用约定告诉我们函数调用时通过哪些寄存器传递参数、通过哪些寄存器保存返回值、
- 2023-11-04前端学习笔记202310学习笔记第一百零玖天-vue3-链式调用&对象属性与遍历&this指向&caller_callee之27
functiontest1(){console.log(arguments.callee)functiontest2(){console.log(arguments.callee)}test2()}test1()functionsum(n){if(n<=1){return1}returnn+sum(n-1)}varres=sum(10)console.log(res)运
- 2023-11-04前端学习笔记202310学习笔记第一百零玖天-vue3-链式调用&对象属性与遍历&this指向&caller_callee之25
functiontest(a,b,c){console.log(arguments.callee.length)console.log(test.length)console.log(arguments.length)}test(1,2)运行结果
- 2023-10-09栈结构
栈结构 注意,ebp到esp位置的是如今栈针,而上方是父栈帧的内容。该图是32的栈帧,紧邻栈帧的stackframepointer是上一个栈帧的栈顶,记录栈底指针的值,方便可以回去调用。variables是存储局部变量的区域。子栈帧的参数是保存在父栈帧的arguments区域。esp用于存储栈顶位置,在pus