我正在尋找爲什麼我無法直接使用.s
文件的解釋。可以直接執行.s文件嗎?
我想了解在x86_64彙編語言,這一點讓我的彙編代碼:
gcc -S sample.c
爲什麼我不能運行它,直接使用nasm
?
我改名sample.s
到sample.asm
並試圖做到這一點:
nasm -f elf -l sample.lst sample.asm
但它給我一個錯誤(如果需要的話將發佈)。我認爲中間文件是彙編代碼。請澄清。
我正在尋找爲什麼我無法直接使用.s
文件的解釋。可以直接執行.s文件嗎?
我想了解在x86_64彙編語言,這一點讓我的彙編代碼:
gcc -S sample.c
爲什麼我不能運行它,直接使用nasm
?
我改名sample.s
到sample.asm
並試圖做到這一點:
nasm -f elf -l sample.lst sample.asm
但它給我一個錯誤(如果需要的話將發佈)。我認爲中間文件是彙編代碼。請澄清。
問題是否可能是GCC的程序集和nasm使用的程序集沒有使用相同的語法!
GCC使用所謂的AT & T語法,而nasm使用標準的Intel語法。見例如http://en.wikipedia.org/wiki/X86_assembly_language#Syntax瞭解有關差異的一些信息。
你可能能夠使用llvm-mc從一個轉換到另一個(沒有承諾) – 2012-07-18 11:19:44
也許它不直接用於win32或win64。也許你應該把模型平坦或類似的東西在開始 – 2012-07-18 10:22:24
嗯,[同樣的問題剛剛被問](http://stackoverflow.com/q/11533478/968261)。 – 2012-07-18 10:22:32
我正在學習組裝 – 2012-07-18 10:22:40