assembly - 汇编器: Calculating a memory address with register base

标签 assembly ida addressing

我有这个简单的汇编命令:

mov eax, fs:[30h];

我的问题是我需要知道这个命令真正读取的具体地址是什么。我找到了很多有关汇编器寻址模式的文档,但没有找到有关 register: 表示法的文档。

有人可以向我解释一下地址计算背后的数学原理吗?

最佳答案

FSSegment Descriptors 表的索引,它又包含一个基地址,该基地址被添加到该地址中。在 win32 上,FS 用于访问线程信息 block (或更准确地说,FS 索引的段描述符具有一个基地址,使得 FS:[0 ] 是 TIB 的开始),FS:[30h] 是指向进程环境 block 的指针的位置。在 win64 上,GS 用于访问 TIB。

关于assembly - 汇编器: Calculating a memory address with register base,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17210620/

相关文章:

c++ - (g++) 剥离函数名

vb6 - 对 VB6/Winsock/ADO 应用程序进行逆向工程

assembly - cltq 在汇编中做什么?

assembly - MOV src,dest(或)MOV dest,src?

手动将C语言的汇编代码转换为机器代码

C++数组访问

assembly - MIPS 标签寻址?

visual-studio-2010 - 程序集 fatal error LNK1190 : invalid fixup found, 类型 0x0001

objective-c - 在IDA Pro中,第二个ARM操作数中的 '::lower16::'是什么意思?

assembly - 将基于索引模式转换为间接寻址模式(x86 汇编)