深入理解x86 - 64架构的寻址模式与进程栈
1. 寻址模式概述
寻址模式是使用被访问数据项的地址(读或写)来访问内存中值的支持方法,可能涉及变量名或数组中的位置。x86 - 64架构的基本寻址模式有以下三种:
- 寄存器模式 :操作数是CPU寄存器,如 mov eax, ebx ,这里eax和ebx都采用寄存器模式寻址。
- 立即数模式 :操作数是立即值,例如 mov eax, 123 ,目标操作数eax是寄存器模式寻址,123是立即数模式寻址。
- 内存模式 :操作数是内存中的位置,通过地址访问,也称为间接寻址或解引用。例如 mov rax, qword [qNum] ,会访问变量qNum的内存位置并获取存储在那里的值。
2. 地址与值
在64位架构中,地址需要64位。访问内存唯一的方式是使用方括号 [] ,省略方括号不会访问内存,而是获取项的地址。例如:
mov rax, qword [var1] ; 将var1的值放入rax
mov rax, var1 ; 将var1的地址放入rax
省略方括号不是错误,汇编器不会生成错误消息或警告。
在访问内存时,很多情况下操作数大小是明确的,如 mov eax, [rbx] 会从内存中移动一个双字。但有些指令
超级会员免费看
订阅专栏 解锁全文
1289

被折叠的 条评论
为什么被折叠?



