随笔分类 - Windows开发
摘要:段选择器FS与TEB WinNT内核下内存采用保护模式,段寄存器的意义与实模式汇编下的意义不同.另外,FS存的是段选择子,而不是实模式下的高16位基地址。 FS寄存器指向当前活动线程的TEB结构(线程结构) 下面为FS寄存器下偏移的相关信息: 偏移 说明 000h 指向SEH链指针 004h 线程堆
阅读全文
摘要:原文地址:https://www.jianshu.com/p/f9e362e64ef9 先看图表示虚拟地址到物理地址的映射,把两段与程序运行所需要的同等大小的虚拟空间映射到某段物理空间。 例如程序A需要 10MB 内存,虚拟地址的范围是从 0X00000000 到 0X00A00000,假设它被映射
阅读全文
摘要:原文链接:https://www.jianshu.com/p/be89357ab475 计算机内存是以字节(Byte)为单位划分的,理论上CPU可以访问任意编号的字节,但实际情况并非如此。 CPU 通过地址总线来访问内存,一次能处理几个字节的数据,就命令地址总线读取几个字节的数据。32 位的 CPU
阅读全文
摘要:对于CPU来说,内存是一个存放指令和数据的地方,并不能在内存中完成计算功能,例如要计算 a = b + c,必须将 a、b、c 都读取到CPU内部才能进行加法运算。为了解具体的过程,我们不妨先来看一下程序从硬盘到CPU的过程示意图。 运算单元:是CPU的大脑,负责加减乘除、比较、位移等运算工作,每种
阅读全文
摘要:函数调用过程 调用函数操作 函数参数入栈(在当前函数栈帧),从左至右或从右至左视情况而定 一般为从右至左 mov 地址,参数 的一个操作并不直接pop而是定位到地址将参数传递进去 call offset: 调用函数,call标识符或地址.同时为要调用的函数开辟新的栈帧 向栈中压入当前指令的地址,即返
阅读全文
摘要:PE文件格式 PE 文件格式把可执行文件分成若干个数据节(section),不同的资源被存放在不同的节中。 一个典型的 PE 文件中包含的节如下: .text 存放着二进制的机器代码 .data 初始化的数据块,如宏定义、全局变量、静态变量等。 .idata 可执行文件所使用的动态链接库等外来函数与
阅读全文

浙公网安备 33010602011771号