我剛開始在linux(ubuntu)上編寫彙編語言程序,並知道我有一個Intel處理器。 nasm使用類似語法和gas的語言(GNU彙編程序),使用類似於語法的AT &。但顯然我的處理器不能理解AT語法。所以我想知道這個編譯器是如何在幕後工作的?是否需要該文件並將彙編語言轉換回英特爾語法,然後在我的處理器上運行它。如果是這樣,它是如何知道我的實際處理器是什麼?(即使在安裝gcc時,我也多想了一下這個疑問,但我沒有告訴它我使用的處理器的類型,它是如何計算出來的?)在linux上編寫彙編語言程序
回答
您的處理器無法理解AT語法或Intel語法。這就是爲什麼你需要一個彙編程序。彙編程序的目的是將某些語法轉換爲CPU可以理解的指令。除非彙編程序只支持一個指令集,否則必須告訴彙編程序要產生哪些指令集。
好的。但是我沒有在任何地方指定指令集。我只是使用as和ld來運行它。它如何找出要生成的指令集? – user1611577
Intel和AT&T不是指令集,而是Assembly的不同語法。您使用瞭解Intel語法的彙編程序(在您的情況下是NASM)。您可以使用GAS使用AT&T語法http://en.wikipedia.org/wiki/X86_assembly_language – Gunner
@ user1611577:如果您未指定指令集,它將使用默認指令集進行安裝。這幾乎可以肯定是x86或x86_64,具體取決於您的安裝是32位還是64位。請注意,指令集和指令語法是兩個完全不同的東西。指令集是您可以執行的指令。指令語法是您如何指定要執行的指令。 ('as --version'會告訴你。) –
- 1. 從彙編語言編寫C程序
- 2. LC3彙編語言程序
- 3. 彙編語言子程序
- 4. sicxe彙編語言編程
- 5. 在Windows上編譯Linux彙編程序
- 6. 如何用匯編語言編寫
- 7. 如何用匯編語言編寫基本的SORT程序?
- 8. 使用匯編語言編寫C程序的函數
- 9. 在linux中混合使用彙編語言和C編程
- 10. 差異在彙編語言編程
- 11. 彙編語言
- 12. 彙編語言?
- 13. linux「as」彙編程序是否支持intel格式彙編語言?
- 14. 如何在os x上用匯編語言編寫Arduino?
- 15. 彙編語言程序中的部分
- 16. 彙編語言源格式化程序
- 17. 彙編語言簡單程序
- 18. 混合彙編語言和C程序
- 19. 彙編語言:宏vs程序
- 20. 64位Linux,彙編語言,問題?
- 21. Linux彙編語言錯誤C++
- 22. 編寫的編程語言
- 23. .NET彙編語言
- 24. SPARC彙編語言
- 25. x86彙編語言
- 26. 彙編語言環
- 27. CMP彙編語言
- 28. 彙編語言Bubblesort
- 29. 彙編語言IA32
- 30. ARMv6彙編語言
您的編譯器不理解任何語法,這就是爲什麼您需要彙編程序。 –
+1彙編程序只是將人類可讀代碼(intel語法或AT&T)轉換爲機器代碼(二進制)。 – Macmade
這種困惑很可能來自於這樣一個事實,即您將「intel」解釋爲由intel支持的某些內容,而實際上它只是一種慣例。 –