我可以在裝配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位模式工作 –