mov eax,0 、mov eax,[0]区别
船过水无痕 2011-10-31 09:29:47 mov eax,0
mov eax,[0]
mov eax,dword ptr[0]
这几条语句,反汇编后机器码为什么都是 B8 00 00 00 00?
按我的理解,第一条是立即数寻址,这是正常的。第二条是直接寻址,可是反汇编后怎么不是 mov eax,dword ptr ds:[0] 呢??? 第三条和第二条应该是一样的取[0]偏移的位置内容,可是仍然还是和mov eax,0的机器指令一样,这是什么原因?
在debug中测试,mov ax,[0]是读取ds:[0]内存的值,为什么32位的编译器产生的结果不同呢?