1
據我所知,我還沒有看到任何人接觸到這一點,所以我使用了一個平面彙編器,如果我嘗試做這樣的事情「lea eax,測試」它不會工作,但如果我做這個「lea eax,[測試]」它的工作原理? 很多例子我遇到我看到人們能夠做到這一點沒有括號,但我不知道是否有可能做一個單位的彙編程序,因爲我不斷收到錯誤無效的操作數,也「測試」是一個DD(雙字)。(組裝32位)不能使用沒有括號的lea?
最後一件事lea eax,[testing]和mov eax,測試在我的平板彙編程序上是相同的。我用ollydbg調試器測試了eax寄存器,在這兩種情況下,eax等於地址00401006.所以在這種情況下,它們相當於正確的?
在提出有關語法的問題時,包含您正在使用的彙編程序的名稱是極爲重要的。這裏的「正確答案」在x86彙編器之間差別很大。 Nasm/Yasm強制使用括號來進行內存訪問(其中包括LEA)。 – 2015-02-08 04:06:37
不要聽起來太不清醒,但它被稱爲「扁平彙編1.71.22」我想這是正確的,也是語法是英特爾 – noob 2015-02-08 04:10:08
據我所知FASM使用類似於我剛剛提到的語法。這意味着內存訪問總是需要括號。如果您只想在寄存器中使用標籤的地址,請使用不帶括號的MOV。 – 2015-02-08 04:13:40