我對使用帶有間接操作數的「xxxx PTR」的規則有些困惑。 有人可以說清楚嗎? 感謝什麼時候應該用間接操作數來使用PTR?
0
A
回答
1
也許你指的這個記憶語法(例如objdump -Mintel
):
add DWORD PTR [eax],0x5
的這裏的一點是,[eax]
只是在內存中的位置,但它並沒有攜帶大小信息。所以我們不知道是將5加到一個字節,一個字,一個雙字還是一個qword。如果我們使用帶註釋的操作碼名稱(addb
,addw
,addl
,addq
),但是這個特定的assert語言會選擇註釋內存操作數,這是很明顯的。在這種情況下,它說,「對待eax
是一個指向雙字的指針」。
相比之下,寄存器操作不需要這樣的註解,因爲寄存器顧名思義它的大小:
add al,0x5 ; addb
add ax,0x5 ; addw
add eax,0x5 ; addl
add rax,0x5 ; addq
相關問題
- 1. 什麼時候應該使用call()直接調用該函數?
- 2. 什麼時候應該使用AWS,什麼時候不使用
- 3. 什麼時候應該使用sed,什麼時候應該使用awk
- 4. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
- 5. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 6. 什麼時候應該使用async/await,什麼時候不用?
- 7. 什麼時候應該使用atomicCAS來支持更具體的原子操作?
- 8. 什麼時候應該使用datagrid,何時應該使用datagridview?
- 9. 什麼時候應該使用$(object),何時應該使用$ object?
- 10. 什麼時候應該使用FSharpFunc.Adapt?
- 11. 什麼時候應該使用_aligned_malloc()?
- 12. 什麼時候應該使用`use`?
- 13. 什麼時候應該使用$ rootScope?
- 14. 什麼時候應該使用$(document).ready?
- 15. 什麼時候應該使用html5 sessionStorage?
- 16. 什麼時候應該使用OWIN Katana?
- 17. 什麼時候應該使用流?
- 18. 什麼時候應該使用Promises?
- 19. 什麼時候應該使用setScriptTimeout?
- 20. 什麼時候應該使用助手?
- 21. 什麼時候應該使用Datomic?
- 22. 我什麼時候應該使用javax.swing.SwingUtilities.invokeLater()?
- 23. 什麼時候應該使用XS?
- 24. 什麼時候應該使用const?
- 25. 什麼時候應該使用退貨?
- 26. 什麼時候應該使用getElementById?
- 27. 什麼時候應該使用Solandra
- 28. 我什麼時候應該使用UITableViewCellSeparatorStyleSingleLineEtched?
- 29. 什麼時候應該使用@android:id /?
- 30. 什麼時候應該使用geom_map?
你說的是MASM?因爲其他彙編器在沒有「PTR」指令的情況下具有更好的語法。 – johnfound
你應該在操作數的大小不明確時使用它,如'mov [eax],0'。 – Michael
我在說寫MASM – sharon182