匯編檔案中的 、 和 指令有.code32什么.code 32區別?.arm
.S 檔案將被編譯為arm-none-eabi-as
這三個指令是否相同?程式員指南中沒有解釋這些指令(https://developer.arm.com/documentation/den0013/d/Introduction-to-Assembly-Language/Introduction-to-the-GNU-Assembler/Assembler-directives?lang =en ),所以我自己很難回答這個問題。
本質上,我們希望確保在給定 .S 檔案中寫入的所有函式都處于 ARM32 指令模式(即不是 Thumb)。
- 更新:看起來像我想象的.code32!其他兩個指令是相同的,.arm實際上只是.code 32.
為快速回復干杯!
uj5u.com熱心網友回復:
它們記錄在 GNU 匯編器手冊中,網址為https://sourceware.org/binutils/docs/as/ARM-Directives.html#ARM-Directives。
.code [16|32]該指令選擇正在生成的指令集。值 16 選擇 Thumb,值 32 選擇 ARM。
.arm這執行與 相同的操作
.code 32。
所以任何一個都會做你想做的事。
.code32沒有提到變體。正如您所注意到的,它實際上在 GNU 中不起作用。這可能是一個錯字,或者某些版本的語法允許空格是可選的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/437347.html
