9、深入理解x86 - 64架构的寻址模式与进程栈

深入理解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] 会从内存中移动一个双字。但有些指令

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值