请问 mov eax, 1 和 mov eax, [1] 有什么区别吗

2025-03-03 08:22:30
推荐回答(2个)
回答1:

在汇编语言中,[]代表的是内存操作数(处理器会根据方括号内的值进行寻址找到该地址内的数据),回到你的问题中:

MOV EAX,1
是将立即数1移入EAX中,执行该指令后 EAX = 1

MOV EAX,[1]
是将内存地址1内的一个DWORD(4字节)的数据移入EAX中,执行完该指令后 EAX = 内存地址1处的DWORD数据

题外话:寻址方式还可以有很多种: MOV EAX,[ECX] 将以ECX为地址读取一个DWORD入EAX中

有不明白的可以继续追问

回答2:

mov eax, [1] = mov eax, dword ptr ds:[1]