2019.5.23

    xiaoxiao2022-07-14  147

    2019.5.23

    1.英语单词计划(223,224)

    2.操作系统实验(DELETE按键判断完成)

    3.读《IDA Pro 权威指南》:

    ①使用热键G 可以弹出窗口输入跳转到一个地址 (Jump > Jump to Previous Positon 可以跳转到前一个位置)` ②使用热键 ESC (仅限于反汇编窗口) 也可以跳转到前一个位置 ③栈帧是程序在运行时栈中分配的内存块,专门用于特定的函数调用,编译器通过栈帧使得对函数的参数和局部变量的分配和释放过程对程序员透明 ④调用约定用于指定调用方放置函数所需参数的具体位置以及由谁负责删除放置在栈中的参数 | |--(1) C调用约定 _cdel :从右到左将参数放进栈,调用方负责从栈中清除参数 | |--(2) 标准调用约定 _stdcall : 从右到左将参数放进栈,由被调用的函数负责从栈中清除参数,stdcall只能用于参数数量固定的函数 | --(使用 ret的特殊形式,从栈顶取返回地址,栈指针直接加上参数所占长度),不需要通过代码来清除,所以生成的程序小,速度稍快 | |--(3) x86调用约定 _fastcall : 它向CPU寄存器最多传递两个参数,清除方式与stdcall类似,但是最多加上两个参数的长度 | --(假设有4个参数,则第一个参数存在ecx,第二个参数存在edx,第三个在栈顶,第四个在第二个栈顶下一个) | |--(4) C++调用约定 _thiscall : this指针被存放到ECX寄存器中,如果使用g++编译,this则被放到栈顶

    至6.2.3

    最新回复(0)