MUL運算符只有單一操作數形式嗎?
IMUL運算符可以有三種不同的形式(帶有一個,兩個或三個操作數),這更方便。從技術角度來看,我沒有看到爲什麼MUL運營商不能以2/3個操作數形式出現。MUL運算符與NASM中的IMUL運算符
3
A
回答
5
它與輸出的字節碼有關。在80286之前的世界裏,操作碼太多,因此英特爾工程師正在設法解決這個問題。一種解決方案是將指定操作的字節碼部分(在這種情況下是乘法)擴展到編碼第一個操作數的字節碼部分。這顯然意味着在執行MUL操作碼時只有一個操作數可以被支持。因爲乘法需要兩個操作數,所以他們通過對處理器進行硬編碼來解決問題,即第一個操作數總是eax寄存器。後來的處理器支持多個長度的字節碼,這些字節碼允許它們將更多數據編碼成單個命令。這使他們能夠使IMUL操作碼更有用。
今天有一個有趣的並行IP地址用完了。
+1
我認爲值得指出的是,其他模式不需要'MUL'。 'MUL'將無符號的單詞*單詞加倍。帶有一個操作數的'IMUL'對簽名做同樣的事情。對於單詞*單詞來說低字符號並不重要,因此不需要使用'MUL'這種模式。 – 2015-03-06 14:04:53
4
並非NASM不支持它 - 在CPU上,指令的簽名版本只支持比未簽名版本更多的變體。
相關問題
- 1. 模運算符在NASM
- 2. Nasm Assembly關係運算符
- 3. 定時運算符+,運算符,運算符*和運算符/
- 4. ||運算符與=運算符相同嗎?
- 5. |算子與||運算符
- 6. Javascript中的OR運算符(|)與parseInt的運算符相同嗎?
- 7. 與運算符或
- 8. 與Like運算符
- 9. C++運算符()括號 - 運算符類型()與類型運算符()
- 10. 布爾運算符的位運算符
- 11. []運算符的運算符過載
- 12. 運算符重載「運算符T *()」產生比較運算符?
- 13. C++:運算符重載,運算符+
- 14. =>運算符vs =運算符
- 15. |運算符,++和I運算符
- 16. 運算符重載運算符()'
- 17. 運算符超載賦值運算符
- 18. 奇怪的運算符優先級與?? (空合併運算符)
- 19. 算術運算符
- 20. 邏輯與運算符與
- 21. 與*運算符的解釋
- 22. 運算符=不與fstream的
- 23. 使用`**`作爲運算符運算符快速運行,運算符'-`
- 24. 標準SQL布爾運算符IS與等於(=)運算符
- 25. Javascript:使用邏輯運算符與比較運算符
- 26. 用算術運算符對數組進行排序數組運算符與比較運算符
- 27. 算術運算符後面的一元運算符
- 28. ggplot2中的「+」運算符與magrittr中的「%>%」運算符有什麼區別?
- 29. 問題與運算符==
- 30. SQL Charindex與LIKE運算符
有人也可以在MUL和IMUL之間的區別是什麼? – CodyBugstein 2013-04-22 18:31:16