我可以在装配mov eax, [ax]
中进行此操作,还是必须指定尺寸mov eax, dword [ax]
。装配说明mov
Q
装配说明mov
0
A
回答
3
[ax]
不是有效的16位寻址模式。将其更改为mov ebx, [bx]
并且您可以执行此操作。 ebx
决定了操作的大小,所以你不需要说dword
。在32位模式下,[bx]
不太可能是“有用”地址,但它是“有效”的代码。在32位模式下,mov al, [eax]
,mov ax, [eax]
和mov eax, [eax]
都是有效的,大小由目标寄存器的大小决定,但为清晰起见,您可能想说“字节”,“字”或“双字”。在这个(!)情况下,大小不必匹配。
FWIW,可以在16位代码中使用32位指令和32位寻址模式。整个地址需要在分段限制内 - 通常是64k - 但mov eax, [eax + ecx * 4]
是有效的代码。 Nasm(或其他“合格的”汇编程序)将生成所需的“操作数大小覆盖前缀”和“地址大小覆盖前缀”(0x66和0x67)。
不要害怕尝试这些东西......虽然它可能不是很清楚为什么NASM被拒绝,如果NASM真的接受它,这并不意味着它会做你想要什么......
3
不,这些操作数不匹配。在可以访问EAX的32位系统上,您还必须使用相同的地址大小。
mov eax, [eax]
将用它指向的值替换EAX中的指针。
+0
。感谢您的知识,现在我也知道:) –
相关问题
- 1. LC4装配说明
- 2. 装配MOV段
- 3. 装配? LD&MOV
- 4. 装配符号说明lea
- 5. 组装说明
- 6. MOVSX装配说明如何工作?
- 7. IA32组装说明
- 8. ngCordova安装说明
- 9. MCUDA安装说明
- 10. 装配中MOV指令的有效性
- 11. SubSonic 2.2安装说明?
- 12. 播种表安装说明
- 13. Shibboleth - Idp&SP安装说明
- 14. 组装说明未知
- 15. JNZ和CMP组装说明
- 16. MonoGame Mac安装说明
- 17. MongoDB的安装说明
- 18. NiFi HA-Proxy配置说明
- 19. mvc-mini-profiler配置说明
- 20. 需要的最小装配说明是什么?
- 21. Java3d的Mac OSX新手安装说明
- 22. Ruby的包装和解压缩说明
- 23. 炸弹实验室组装说明
- 24. 歧义安装说明的iOS
- 25. FILD,FSTP和FST组装说明
- 26. go - 从ubuntu安装说明ppa
- 27. 说明不是“包装”在boxxy框
- 28. 组装的基本c的说明
- 29. 了解Nvidia Kepler组装说明
- 30. 基于语言的安装说明
取决于汇编程序,那么,您正在使用哪个汇编程序? – harold
使用Nasm,并在32位模式工作 –