欢迎来到天天文库
浏览记录
ID:29638956
大小:64.50 KB
页数:4页
时间:2018-12-21
《《寄存器总结》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、EAX:累加寄存器ECX:计数寄存器,常用于计数EDX:数据寄存器,常用于数据传递EBX:基址寄存器,常用于地址索引ESP:ESP为堆栈指针,指向当前栈顶EBP:EBP为帧指针,当前活动记录的顶部ESI:变址寄存器,源地址指针,存储单元在段内的偏移量,EDI:变址寄存器目标地址指针EIP:指令寄存器,存放当前指令的下一条指令的地址ES:附加段寄存器CS:代码段寄存器SS:堆栈段寄存器DS:数据段寄存器FS:寄存器指向当前活动线程的TEB结构000指向SEH链指针004线程堆栈顶部008线程堆栈底部00CSubSystemTib010FiberData
2、014ArbitraryUserPointer018FS段寄存器在内存中的镜像地址020进程PID024线程ID02C指向线程局部存储指针030PEB结构地址(进程结构)034上个错误号GS:全局寄存器EFL:标志位寄存器,各标志位的含义如下图,DF:是控制标志位为方向标志,在串处理指令中控制处理信息的方向用。当DF为1时,每次操作后使变址寄存器SI和DI减小,这样就使串处理从高地址向低地址方向处理。当DF为0时相反.TF当TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试ZF表示目的操作数结果
3、为零AF表示(AL为一个字节)相加进行到一半(低4位)有没有向另一半(高4位)进位,也可以表示是否借位(减法)PF表示为偶数CF表示已经发生进位,也可以表示借位操作标志位寄存器汇编指令LAHF 标志寄存器传送,把标志装入AH.SAHF 标志寄存器传送,把AH内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD32位标志入栈.POPD32位标志出栈.浮点寄存器:(80位)ST0ST1ST2ST3ST4ST5ST6ST7FST:协处理器状态寄存器FCW:浮点控制寄存器具体参考http://download.intel.
4、com/design/processor/manuals/253665.pdfMM0:多媒体指令寄存器MM1MM2MM3MM4MM5MM6MM7DR0:调试寄存器DR1DR2DR3DR4DR5DR6DR7CR0:控制寄存器CR1CR2CR3CR4CR5CR6CR7TR0:任务寄存器TR1TR2TR3TR4TR5TR6TR7XMM0:单指令,多数据寄存器FS:得到KERNEL32.DLL基址的方法assumefs:nothing;打开FS寄存器moveax,fs:[30h];得到PEB结构地址moveax,[eax+0ch];得到PEB_LDR_DAT
5、A结构地址movesi,[eax+1ch];InInitializationOrderModuleListlodsd;得到KERNEL32.DLL所在LDR_MODULE结构的InInitializationOrderModuleList地址movedx,[eax+8h];得到BaseAddress,既Kernel32.dll基址获得pted结构汇编代码TEB*pteb=NULL; __asmmoveax,fs:[18h] __asmmovpteb,eax对于协处理器中状态寄存器的内容,程序员可用指令FSTSW把其值送到内存单元中。如果当前使用的是8
6、0287及其以后的协处理器,那么,可用指令“FSTSW AX”把该状态寄存器的值传送给通用寄存器AX。一旦状态寄存器的值复制到内存或AX中,那么,就可对其各位进行分析,并可检测出当前协处理器的工作状态。对于80287协处理器,它还可通过I/O地址00FAH~00FFH来实现其与CPU之间的数据交换,而80387~Pentium系列芯片,则是通过I/O地址800000FAH~800000FFH来实现这两者之间的数据交换。当状态寄存器的内容传给AX之后,一般可用下面二种方法来检测协处理器的状态。方法1:用TEST指令来检测其相应的状态位。例11.3 检测
7、是否有“0作除数”的错误。 FDIV DATA1 ;用协处理器中堆顶数据去除DATA1FSTSW AX ;把状态寄存器的值传送给AXTEST AX, 4 ;测试第2位,即:检测ZE是否为1JNZDIV_ERR例11.4 检测是否有“非法操作数”的错误。 FSQRT;求协处理器中堆顶数据的平方根FSTSWAXTESTAX, 1;测试第0位,即:检测IE是否为1JNZSQRT_ERR方法2:用SAHF指令把AX的低字节传送给CPU的标志位寄存器,然后再用条件转移指令来完成相应的检测。 例11.5 检测内存单元的数据与协处理器堆顶数据之间的大小关
8、系。 FCOMDATA1;内存单元DATA1的值与协处理器堆顶数据进行比较FSTSWAXSAHF;把AX的低
此文档下载收益归作者所有